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