【问题标题】:Ajax cache controlAjax 缓存控制
【发布时间】:2010-05-10 17:53:33
【问题描述】:

我在 Internet Explorer 和 Chrome 中遇到 ajax 请求问题 - 我无法破坏缓存。普通页面没有问题 - 只是 ajax 请求。

我知道一种解决方法是将随机查询字符串变量附加到 URL 的末尾。但是,我不想失去缓存的所有好处,我只想让浏览器在服务器上的版本与缓存的版本不同时获取新文件。

我已经尝试手动设置 ajax POST 标头,但无济于事:

xmlHttp.setRequestHeader("Cache-Control", "must-revalidate");

将此添加到我的 .htaccess 文件中也不起作用:

<FilesMatch "\.(js|css).*">
标头集 Cache-Control: "max-age=172800, public, must-revalidate"
</FilesMatch>

任何帮助将不胜感激。

谢谢,布赖恩

【问题讨论】:

    标签: javascript ajax apache caching header


    【解决方案1】:

    如何创建/扩展一个组件,该组件发出您的 css/js 包含附加到链接的最新版本?这样,它就不会每次都获取一个新副本,并且只会在服务器说有一个新版本时才获取一个新版本。

    【讨论】:

    • 这实际上是一个绝妙的主意。我唯一的问题是我正在使用 mod_concat apache 模块,该模块需要以与查询字符串不兼容的方式编写
    • 通过将此答案与 mod_rewrite 结合使用来解决问题,以绕过 mod_concat 施加的限制。感谢您的帮助。
    猜你喜欢
    • 2016-01-28
    • 2020-09-22
    • 2012-06-06
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 2012-06-10
    • 2011-10-01
    相关资源
    最近更新 更多