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 を介してすべてのコンテンツを取得するため、必要な画像を指定することはできません (指定できますが、応答が大きくなります)。