2012-09-06 40 views
4

我試圖從外部服務器加載的圖像構建一個jcarousel滑塊。這些圖像保存爲GIF並以ID:0001.gif,0002.gif,0010.gif,0011.gif等命名。我想要顯示前99張圖像,但事實證明一些圖像不存在。在Firefox中,這不是一個問題,因爲它沒有對未加載圖像的「佔位符」。但對於所有其他瀏覽器,解決方案是隱藏或刪除未加載的圖像。這似乎在Chrome和Safari中運行良好,但在Firefox中存在緩存問題。我的問題是;我如何避免這種情況?jQuery .load()函數緩存

$(document).ready(function(){ 
    for(var i = 0; i < 99; i++){ 
     // Append images 1-9 to #items 
     if(i < 10){ 
      $('#items').append('<li class="item" id="' + i + '"><a href="http://www.fagpressen.no/id/3653?magazine=000' + i + '"><img id="' + i + '" src="http://katalogen2012.fagpressen.no/blader/forside/forside000' + i + '.gif"></a></li>'); 
     } 
     // Append images 10 - 99 to #items 
     if(i >=10 && i <= 99){ 
      $('#items').append('<li class="item" id="' + i + '"><a href="http://www.fagpressen.no/id/3653?magazine=00' + i + '"><img id="' + i + '" src="http://katalogen2012.fagpressen.no/blader/forside/forside00' + i + '.gif"></a></li>'); 
     } 
    } 

    // Remove empty images 
    var len = $('.item').find('img').length; 
    $('.item').find('img').each(function(i){ 
     var img = $(this), 
      itemId = $(this).attr("id"); 

     img.error(function() { 
      var elem = $(this); 

      elem.parents('li').remove(); 
      if (i + 1 === len) { 
       startCarousel(); 
      } 
     }).load(function() { 
      if (i + 1 === len) { 
       startCarousel(); 
      } 
     }); 

     if (img.width() > 0) { 
      img.trigger('load'); 
     } 
    }); 
}); 
+0

u能描述你的「緩存問題」是什麼意思?究竟發生了什麼? – brains911

回答

0

你可以嘗試使用,而不是.load阿賈克斯,這給你的可能性這樣的禁用緩存:

$.ajaxSetup ({ 
    cache: false 
});