我有一个app类型的网站,其中包含几个长列表页面(例如按国家/地区分组的公司列表),需要几秒钟才能构建,但不要经常更改。我使用APC& Memcache在某种程度上,但我也想“为什么它一直打到服务器上”所以我设计了这个:
ob_start();
require_once '../bootstrap.inc.php'; request_router(); // MVC style system, all work starts here
header("Expires: " . gmdate("D, d M Y H:i:s",time()+300) . " GMT"); // 5 minutes
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: private");
header("Pragma: private");
echo ob_get_clean();
我只是基本上想要设置它,以便当它们进入大列表时,它已构建,但是当它们单击链接,然后单击另一个链接返回列表时,它不会检查重建每次都列出。
在尝试实施之前发现任何缺陷?
(仅供参考,我尝试在apache中使用ExpiresActive
执行此操作,但我无法使其工作;但这对我来说似乎更容易,并且在一个让我更容易控制的地方Expires标题)
答案 0 :(得分:1)
看不出任何问题。
如果您想要更多的灵活性,那么您可以使您添加的值到达到期时间,该变量可以在MVC代码的其他位置设置,但如果未设置则默认为300。这样,您可以为不同的页面设置不同的到期时间,甚至可以为您从不想要缓存的页面设置为负值。