2013-03-03 51 views
1

我正在構建一個網頁閃存卡以幫助我的學習。當我提出問題時會顯示圖像,當我選擇答案時,會顯示另一圖像。在選擇答案之後,我並沒有等待答案圖片下載,而是在顯示問題圖片後立即開始答案圖片的預加載。我的預加載器是:如果再次調用預加載器,是否再次下載了預加載的圖像?

function preloadImage(src) { 
    var image = new Image(); 
    image.src = src; 
} 

我的理解是,這會將圖像文件緩存在瀏覽器中。圖像文件通過將文件名分配給圖像標籤的src來顯示。一旦圖像文件與Image()對象相關聯,那麼當該文件被分配給src時,瀏覽器將從緩存中提供圖像。

如果我對我的回答感到滿意,那麼閃卡將被從卡組中取出,如果我對我的回答不滿意,閃卡將回到組包中,稍後會問。

如果再次詢問返回到卡座的閃卡,則將再次調用預加載的答案圖像。

我的問題是:第二次和後續調用我的預加載導致文件被從服務器分配給新的圖像()對象下載或將它從瀏覽器緩存中讀取。

非常感謝提前

回答

0

取決於服務器配置。任何文件都可以設置爲緩存。大多數時候圖像被設置爲緩存很長時間,所以很有可能它不會再被下載。我建議在可以播放之前,預先加載所有圖片,或者至少大部分圖片,具體取決於您應用的設置方式。這樣,用戶就會受到輕微的中斷。

說得更加直白,不,繼該方法調用不會強迫下載(假設服務器設置了正確的Expires頭)。