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

OK、Chrome やその他のブラウザには独自のキャッシュ期限切れのデフォルトがあるようです。この問題を解決するには、スライドショー セットに画像をプリロードしてから、有効期限を変更する必要がありました。クロムがデフォルトの有効期限を与えないように.htaccessファイルを編集するまで、Firefoxでのみ適切に機能していました。

<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 に答える