JavaScript を少し学び始めたばかりで、画像がすでにキャッシュにロードされているかどうかを確認する方法があるのではないかと考えました。
私のスクリプトでは、別の Web ページからランダムな画像をいくつか読み込んで表示しています。同じ画像が 2 回目に表示されるとき、スクリプトはすでにロードされている画像を使用せず、代わりに同じ画像を再度ロードして、2 つの画像がキャッシュに保存されるようにします。
ここで、画像がすでにキャッシュに保存されているかどうかを確認し、保存されている場合は、再度読み込む代わりにキャッシュされた画像を使用します。
私のコード:
<script>
var img = document.createElement('img');
var index;
//On Click create random 3digit number between 1 and 100
document.getElementById('image').onclick = function(){
var index = '' + Math.floor(Math.random() * 100 +1);
while(index.length < 3) {
index = '0' + index;
}
loadImages(index);
};
//Load the image with the created number
function loadImages(id) {
var src = 'someWebPage/' + id +'.png';
img.onload = function () {
document.getElementById('image').getContext("2d").drawImage(img, 0, 0, 300, 300);
}
img.src = src;
}
</script>
私のキャッシュの写真:
ご覧のとおり、キャッシュには 2 回030.png
あります032.png
。
アドバイスをいただければ幸いです。
編集:この問題に直面している他の人にとっては、実際にはまったく問題はありません。Chrome はすでにすべてを正しく行いましたが、私は気付かなかっただけです。コラムSize
からわかるように、写真はすでにキャッシュからロードされています。
(このコンテキストでの) キャッシングが処理される方法は、ブラウザが一連のヘッダーを使用してサーバーとネゴシエートして、基本的にサーバーに「このバージョンのリソースを既に持っています」と伝え、サーバーは「OK、それは引き続き有効です。新しいものをダウンロードする必要はありません。」したがって、JavaScript 側のキャッシュについて心配する必要はありませんが、サーバー側で正しいCache-Controlヘッダーを設定していることを確認してください。キャッシュを設定する方法について、サーバー/フレームワークの選択に関する質問/回答がすでにある可能性があります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加