私の Web サイトでは、ページの読み込み中に一部の JavaScript が画面の解像度を検出し、次のコードを使用して本文の背景を URL に設定します。
var url = "http://site.com/get_background/" + width + "/" + height;
var body=document.getElementsByTagName('body')[0];
body.style.background = "#000000 url(" + url + ") fixed top center";
urlget_background/
では、次の PHP コードを使用して画像が提供されます。
$etag = md5_file($image);
$lastModified = gmdate('D, d M Y H:i:s', filemtime($image)) . ' GMT';
header("Content-type: $mime");
header("ETag: \"{$etag}\"");
header("Last-Modified: $lastModified");
header('Cache-Control: max-age=28800');
$image = readfile($image);
imagejpeg($image);
imagejpeg($image);
Firefox では、これはすべて期待どおりに機能します。ただし、Chrome では、このサイトのページが読み込まれるたびに、画像がキャッシュされて提供されるだけでなく、もう一度読み込まれるように見えます。
背景を設定するコードを外部のcssファイルに移動すると、Chromeで期待どおりに機能しますが、javascriptに配置すると、Chromeが画像を更新するようです。
私はそれについて何をすべきですか?画面解像度は JavaScript を介して検出する必要があるため、コードを JS に配置する必要があります。javascriptを介してロードされているにもかかわらず、クロムに画像を強制的にキャッシュさせる方法はありますか?