jQuery .load() 函数缓存

标签 jquery firefox caching

我正在尝试构建一个 jcarousel slider ,其中包含从外部服务器加载的图像。图像保存为 GIF 并以 ID 命名:0001.gif、0002.gif、0010.gif、0011.gif...等。我想显示前 99 张图像,但结果发现有些图像不存在。在 Firefox 中,这不是问题,因为它没有用于未加载图像的“占位符”。但对于所有其他浏览器,解决方案是隐藏或删除未加载的图像。这在 Chrome 和 Safari 中似乎工作正常,但在 Firefox 中存在缓存问题。我的问题是;我该如何避免这种情况?

$(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' );
        }
    });
});  

最佳答案

您可以尝试使用 .ajax 而不是 .load,这使您可以像这样禁用缓存:

$.ajaxSetup ({
  cache: false
});

关于jQuery .load() 函数缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12295735/

相关文章:

JavaScript 在 IE 中有效,但在 Firefox 中无效

firefox - Selenium:如何确保 back() 导航在不同站点上按预期工作?

web-applications - HTML5 离线模式和地理定位

c# - Gmap.net 缓存如何工作?

javascript - jQuery - 如何将事件附加到 DOM 对象并在不同的位置将处理程序绑定(bind)到它?

php - 使用 AJAX 发布到 PHP 时,有什么方法可以再次保护后期操作?

jquery - jquery click 中的警报不会停止提交

jquery - 我可以在文本表单输入中检索用户选择的文本吗?

javascript - 当 div 内的范围包含使用 jquery 的特定文本时更改 div 的背景

java - 检查 Gemfire 缓存中对象的大小