1

以下のように Javascript とスタイルを使用して画像 (slide1.jpg、slide2.jpg、slide3.jpg ..、slide5.jpg) をロードする Ubuntu 12.04.1 でスライドショーを実行しています。

document.getElementById('slide_area').className='slide'+step;

.slide1{background-image: url(../upload/slide1.jpg)}
.slide2{background-image: url(../upload/slide2.jpg)}
.slide3{background-image: url(../upload/slide3.jpg)}
.slide4{background-image: url(../upload/slide4.jpg)}
.slide5{background-image: url(../upload/slide5.jpg)}

画像の名前 (show1.jpg、show2.jpg、show3.jpg ..、show5.jpg) を変更し、以下のようにスタイルを変更すると:

.slide1{background-image: url(../upload/show1.jpg)}
.slide2{background-image: url(../upload/show2.jpg)}
.slide3{background-image: url(../upload/show3.jpg)}
.slide4{background-image: url(../upload/show4.jpg)}
.slide5{background-image: url(../upload/show5.jpg)}

Chrome でネットワーク セクションを開くと、サーバーが画像の新しい名前と古い名前を呼び出していることがわかります。

index.php にヘッダーを追加しました。

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache"); 

imageObject.complete プロパティに応じて画像を順番に (1 つずつ) ロードするときにブラウザのキャッシュをクリアしても、画像の名前を変更するとスライドショーが正しく機能しません。しかし、名前を変更しなくても、すべてが完璧になり、画像がスムーズに読み込まれます!

ご協力ありがとうございました!

4

3 に答える 3

0

この質問は、表示するたびに画像を呼び出すのではなく、サーバーから一度呼び出すことで解決しました。 )、繰り返しごとに、1 つの画像を表示し、他の画像を非表示にします! 表示時に各画像に src を指定すると、サーバーが最後に呼び出されたときに画像が変更されたかどうかを確認するように要求したときにサーバーが遅くなる可能性があり (304 応答)、結果として表示が遅くなります! ありがとうございました :)

于 2013-10-28T21:51:38.403 に答える
0

あなたの質問はあまり明確ではありませんが、キャッシュされているのは CSS ファイルだと思います。代わりに、CSS ファイルの名前を変更してみてください。

于 2013-10-22T16:54:48.677 に答える