1

私は自分の研究に役立つウェブページのフラッシュカードを作成しています。質問すると画像が表示され、回答を選択すると別の画像が表示されます。回答を選択した後、回答画像がダウンロードされるのを待つのではなく、質問画像を表示した直後に回答画像のプリロードを開始します。私のプリローダーは:

function preloadImage(src) {
    var image = new Image();
    image.src = src;
}

私の理解では、これはブラウザに画像ファイルをキャッシュします。画像タグのsrcにファイル名を割り当てると、画像ファイルが表示されます。画像ファイルがImage()オブジェクトに関連付けられると、そのファイルがsrcに割り当てられると、ブラウザはキャッシュから画像を提供します。

私の答えに満足している場合、フラッシュカードはデッキから引き出されます。私の答えに満足していない場合、フラッシュカードはパックに戻り、後で尋ねられます。

デッキに戻されたフラッシュカードが再度要求されると、応答画像に対してプリロードが再度呼び出されます。

私の質問は、プリローダーを2回目以降に呼び出すと、ファイルがサーバーからダウンロードされて新しいImage()オブジェクトに割り当てられるのか、それともブラウザーのキャッシュから読み取られるのかということです。

よろしくお願いします

4

1 に答える 1

1

サーバー構成によって異なります。任意のファイルをキャッシュするかどうかを設定できます。ほとんどの場合、画像は長期間キャッシュされるように設定されているため、再度ダウンロードされない可能性があります。再生する前に、アプリの設定方法に応じて、すべての画像、または少なくともほとんどの画像をプリロードすることをお勧めします。このように、ユーザーへのマイナーな中断があります。

もっと簡単に言えば、いいえ、そのメソッドへの後続の呼び出しはダウンロードを強制しません(サーバーが正しいexpiresヘッダーでセットアップされていると仮定します)。

于 2013-03-03T21:35:48.750 に答える