0

PHP で生成された画像をキャッシュする必要がありますが、画像の内容 (URL が同じである必要があります) は変更される可能性があります。その場合、ブラウザは古い画像を「キャッシュ解除」し、新しい画像をキャッシュする必要があります。ただし、元の画像がキャッシュされている場合、ブラウザはサーバーにリクエストを送信しません。画像をキャッシュするには、これを使用します。

header("Cache-Control: private, max-age=10800, pre-check=10800");
header("Pragma: private");
header("Expires: " . date(DATE_RFC822,strtotime(" 2 day")));
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) 
       && 
  (strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == filemtime($file))) {
  header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($file)).' GMT', 
  true, 304);
  exit;
}

ユーザーは ajax と JSON を介してすべてのコンテンツを取得するため、必要な画像を指定することはできません (指定できますが、応答が大きくなります)。

4

1 に答える 1

1

ETagを使用できます。
しかし...それでもhttpリクエストと「部分的な」レスポンスが必要です。

于 2012-08-24T13:02:50.047 に答える