【问题标题】:Prevent Cache JS FIle防止缓存 JS 文件
【发布时间】:2015-01-12 23:11:57
【问题描述】:

我们有一个 JS 脚本,它可能会随着每个请求而改变。我们没有机会改变 script 标签的 src。但是,我们确实可以更改输出 JS 的服务器端脚本。

为什么按下后退按钮后这个脚本没有在 iOS 上重新加载?

在 php 中,我们发送了这些标头:

header("Cache-Control: private, no-cache, no-store, must-revalidate, max-age=0"); // HTTP 1.1.
header('Last-Modified: '.gmdate('D, d M Y H:i:s \G\M\T', time()));
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time()));
header('Access-Control-Allow-Origin: *');
header('Pragma: no-cache'); // HTTP 1.0.
header('Content-Type: application/javascript; charset=utf-8');//lets pretend it to be a JS file

强制重新加载 js 文件缺少什么?

更新:

第 1 页加载了脚本标签

在第 1 页的锚点点击后,客户被重定向到新页面; page 2. script src="some.js etc etc. some.js 是在服务器上动态生成的,并且会输出一些东西。

点击后退按钮,会跳转到第1页。但是some.js显示的是第2页的内容。奇怪????

【问题讨论】:

    标签: javascript php caching


    【解决方案1】:

    如果页面仍在 RAM 缓存中,则返回按钮实际上不会使页面加载。 您可以重新加载您的 JS 绑定到窗口的 onpageshow 事件。

    看这里:

    【讨论】:

    • 我们说的一样吗?检查我上面的更新...您的 RAM 缓存仍然有意义吗?
    • @PeterFox 文件名总是一样的吗?如果是这样,则缓存的将被覆盖。利用时间戳并附加它们。
    • 是的,这总是一样的,因为我们无法改变它。
    猜你喜欢
    • 2020-11-18
    • 1970-01-01
    • 2016-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    相关资源
    最近更新 更多