我正在创建一个动态图像,它依赖于有关登录用户的大量信息,但是在线用户如此之多,图像系统正在使用我的网站主机分配给我的大量资源。
有没有办法告诉浏览器临时缓存图像?类似于临时cookies?
该图像包含诸如帖子计数之类的数字和其他频繁递增的数字,这些数字可能导致浏览器的自动缓存图像可能在每次页面加载时重新下载图像。我不介意为我的服务器节省大量处理时间的一点点不准确
[编辑] 浏览器已经缓存内容(除非明确告知不要这样做),如果它检测到最后修改的更改,则重新加载它。
我猜测您正在生成的图像是a)由特定的php script()返回到浏览器或b)暂时存储但正在更新,因此浏览器检索更新的版本。[/编辑]
如果您基于动态生成的内容输出图像,您可以将其临时写入目录,然后根据预定义的时间段拉取图像(如果有效)。
if(file_exists($file) && filemtime($file) <= time()-60*20) {
// Regenerate image
} else {
// Load image from cache
}
上面的示例在 20 分钟内不会重新生成图像。
尝试看这里 http://www.webscalingblog.com/performance/caching-http-headers-cache-control-max-age.html
或者,您可以在 PHP 中设置缓存控制标头,并使用脚本显示图像。