jQuery在Chrome或Safari中预加载不缓存

时间:2012-11-01 17:26:26

标签: jquery google-chrome caching

我有一个jquery幻灯片并构建了一个预加载函数:

function preload_images(){
var pre_image = curr_img - 1;
if(pre_image < 0) pre_image = (tot_elements-1);

var curr_obj = 0;

if(!$('#img_preloaded_'+pre_image).length > 0){
    curr_obj = slideshow[pre_image];
    $('.preload_left').append('<img src="'+curr_obj["img_url"]+'" id="img_preloaded_'+pre_image+'" class="preload_box" />');
}

var pre_image = curr_img + 1;
if(tot_elements==pre_image) pre_image = 0;
if(!$('#img_preloaded_'+pre_image).length > 0){
    curr_obj = slideshow[pre_image];
    $('.preload_right').append('<img src="'+curr_obj["img_url"]+'" id="img_preloaded_'+pre_image+'" class="preload_box" />');
}

Firefox中的一切都很有效 - 图像在加载时会被缓存 - 但由于某种原因,图像不会缓存在Chrome或Safari中。您可以看到,在FF,Chrome和Safari中,图像会加载到幻灯片放映左侧的文档中,但它们不会缓存。幻灯片重新加载它们除了在FF中,因为图像已经缓存在FF中。

https://www.assembla.com/code/cfrepo/subversion/node/blob/trunk/index.html#image=CrossFire http://jsfiddle.net/doobada/9m9eq/

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,看起来Chrome和其他浏览器都有自己的缓存过期默认值。要解决此问题,我需要在幻灯片集中预加载图像,然后更改过期。它只能在Firefox中正常工作,直到我编辑.htaccess文件,以便chrome不会给它默认的到期时间:

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Expires "Thu, 15 Jan 2015 20:00:00 GMT" </FilesMatch>