【发布时间】:2011-08-13 15:31:34
【问题描述】:
就在几天前,我开始使用浏览器缓存,缓存 js 和 css 文件并保持“未修改”,效果很好。
现在我想在系统的许多页面上应用相同的方式。例如,我有这个页面列出了数据库中的“用户”,我想缓存该页面,以免查询使数据库过载。
我的问题是:这是否是一个好方法(缓存时页面是否仍然执行 db 查询?)还是应该转向磁盘缓存或 memcached?
header("HTTP/1.1 304 Not Modified");
header("Expires: ".gmdate("D, d M Y H:i:s", time()+(60*86400))." GMT");
header("Cache-Control: must-revalidate");
mysql_query(" SELECT * FROM `users` ");
// list all users
【问题讨论】:
-
不建议在动态页面上缓存(原因很明显)。
-
在我正在使用的系统上,取消缓存并从数据库中调用结果取决于另一个因素。所以我可以保持缓存并在需要时取消它。