1

Google Chromeで背景画像を設定し(おそらくimgタグの使用も含めることができます-私はそれをテストしていません)、サーバーがそれをキャッシュするように要求していない場合、GoogleChromeはサーバーにヒットして要求します画像をもう一度(すでにページにある場合でも、これをバグとして提出しましたが、wontfixとして設定されました)。これを回避する方法はありますか(できればjQueryを使用して)?

画像をjavascriptImageオブジェクトにロードしたので(キャンバスに配置する予定なので)、それで何かできると思いました(ただし、それ以外の場合はjavascript状態を使用してImageオブジェクトをdiv背景画像として設定します)。

ファイルが動的に生成されるため、ブラウザにファイルのキャッシュを要求するようにサーバーを設定することは理想的ではありません(?_rand = 123のトリックについては知っていますが、純粋なクライアント側のソリューションをお勧めします)。

4

2 に答える 2

0

あるオブジェクトを別のオブジェクトに交換します。

事前にキャッシュされた画像ではこの問題を解決できないと言っている場合 (実際のページとサーバーを見ないとわかりません)、他の唯一の解決策は、実際の画像を背景画像としてオブジェクトを事前にキャッシュすることです。次に、現在のオブジェクトを、バックグラウンドが既に読み込まれているオブジェクトと交換します。背景画像を変更しようとしている実際の HTML を開示していただければ、その方法をより具体的にアドバイスできます。

ただし、これを解決するより適切な方法は、キャッシュが必要な場合にクライアントがサーバーからの適切なヘッダーを使用してキャッシュできるようにすることであるため、これは回避策にすぎません。キャッシュが不要な場合は、URL に何かを追加することで、いつでもキャッシュを無効にすることができますが、ヘッダーを介してキャッシュしないようにブラウザーに指示すると、ブラウザはあなたの言うことを聞き、回避できません。それ。

于 2012-04-16T00:09:36.887 に答える
0

background-imageプロパティでを設定する画像ごとに CSS クラスを作成しclassName、要素の を表示する画像に対応するクラスに設定します。

JSBin: http://jsbin.com/oruros/1でこの手法の実際を参照してください。Chrome でネットワーク パネルを開いて確認してください。画像が複数回リクエストされていることはありません

これを動的に行う場合は、ここで概説されている手法のいずれかを使用して CSS クラスを作成します: How to create a <style> tag with Javascript

于 2013-04-05T04:04:55.013 に答える