0

我有一个 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/

有什么想法吗?

4

1 回答 1

0

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

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> Header set Expires "Thu, 15 Jan 2015 20:00:00 GMT" </FilesMatch>
于 2012-11-05T21:44:24.720 回答