【问题标题】:Force a page cache of Ajax content强制 Ajax 内容的页面缓存
【发布时间】:2010-06-01 16:38:06
【问题描述】:

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

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

我怎样才能做到这一点?

我目前有....

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

它不会加载缓存

【问题讨论】:

    标签: php caching


    【解决方案1】:

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

    当您加载页面时,检查任何 POST 数据(或 GET,但是您正在执行此操作),然后检查会话以查看是否使用该数据完成了最近的搜索。这将加快速度并减少数据库的一些流量。

    【讨论】:

      【解决方案2】:

      关于问题及其解决方案的好文章: http://asciicasts.com/episodes/175-ajax-history-and-bookmarks

      【讨论】:

        【解决方案3】:

        您可能想要使用 jQuery 历史插件。 见demo

        【讨论】:

        • 我正在拍摄一个直接的浏览器缓存,它将缓存整个页面,而不仅仅是结果。不过谢谢
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-21
        • 2021-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多