2013-10-23 45 views
0

我在我的服務器Ubuntu 12.04.1上使用下面的JavaScript代碼運行幻燈片。問題是,當我更改圖像的名稱時,我在Chrome網絡工具上獲得了無限的服務器響應304(未修改)。但是,當我清除瀏覽器歷史記錄(緩存)時,我可以得到一切正常,只有5個來自緩存的網絡請求,而不像附加的屏幕截圖。爲什麼更改幻燈片的圖像名稱會導致無限的304(未修改)服務器響應?

我想知道爲什麼會發生這種情況,以及如何解決它?屏幕截圖附上您的實物參考!如果您提示我如何解決這些無限制的請求,將不勝感激?謝謝!

在頁面的index.php:

<SCRIPT> 
//set image paths 
src = ["ic/photo1.jpg", "ic/photo2.jpg", "ic/photo3.jpg", "ic/photo4.jpg", "ic/photo5.jpg"] 

//set duration for each image 
duration = 4; 

ads=[]; ct=0; 

function switchAd(){ 
    var n=(ct+1)%src.length; 
    if (ads[n] && (ads[n].complete || ads[n].complete==null)) { 
     document["Ad_Image"].src = ads[ct=n].src; 
    } 

    ads[n=(ct+1)%src.length] = new Image; 
    ads[n].src = src[n]; 
    setTimeout("switchAd()",duration*1000); 
} 

onload = function(){ 
    if (document.images) 
    switchAd(); 
} 

//--> 
</SCRIPT> 

<IMG NAME="Ad_Image" SRC="ic/photo1.jpg" BORDER=0> 

enter image description here

+0

你是什麼意思,「無限」?你從緩存中獲取圖像,是不是很好? – bfavaretto

+0

@bfavaretto:如果你注意到屏幕截圖的左下角,有38個請求,如果我保留一個小時,它可能會達到100個請求!所以當用戶打開我的網站2個小時,然後會發送和接收200個請求!但是當我從緩存中獲取它時,我只能得到5個狀態爲200的請求! – moderns

+0

你高嗎?你不知道'304 Not Modified'響應是什麼意思? – Sammitch

回答

0

我已經解決了這個問題,購買從服務器調用圖像一次,而不是每次都來查看調用它,也就是我說的圖片在文檔中,然後添加一個src到每一個(一次 - 這意味着從服務器調用它們),然後對於每次重複,我顯示一個圖像並隱藏其他圖像!因爲如果我在查看時給每個圖像添加一個src,那麼當服務器請求查看上次調用的圖像是否已被修改(304響應)時,服務器可能會很慢,並且這會導致視圖延遲!謝謝:)

相關問題