2010-06-01 52 views
2

我有一个页面,搜索结果通过ajax加载。然后它会在页面上列出产品,您可以点击查看每个产品。我想更改此页面,如果您在浏览器上点击“后退”,则会加载缓存,而不是强制用户再次搜索。强制Ajax内容的页面缓存

注:我不是在寻找一个AJAX的缓存,但一个简单的浏览器缓存头

我怎样才能做到这一点?

我现在有....

header('Cache-Control: private, max-age:3600'); 
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + 3600)); 

,它不会加载缓存

回答

0

你可能想使用jQuery的历史插件。 查看demo

+0

我拍摄的一个直线上升的浏览器缓存,将缓存的页面作为一个整体,而不仅仅是结果。不过谢谢 – Webnet 2010-06-01 16:44:10

1

而不是捕获浏览器上的“后退”按钮或依靠Javascript(从来不是一个好主意),我会建议使用会话来保存结果。我通常为搜索结果做的是将格式化的结果保存到会话中以便快速重新加载(对于您所描述的情况,查看详细信息页面后返回的情况),并在任何时候重新进行搜索时将其替换,以便您没有海量的会话数据堆积如山。

当你加载页面时,检查任何POST数据(或GET,但是你正在做它),然后检查会话以查看是否使用该数据进行了最近的搜索。这会加快速度,并将一些流量从数据库中取出。