javascript - 防止缓存 JS 文件

标签 javascript php caching

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

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

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

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 文件缺少什么?

Charles Response headers on the first load

更新:

第 1 页已加载 script 标签

在第 1 页上进行 anchor 点击后,客户将重定向到新页面;第2页。脚本 src="some.js 等。some.js 是在服务器上动态生成的,并且会输出一些内容。

点击后退按钮,将进入页面 1。但是 some.js 显示的是页面 2 的内容。奇怪???

最佳答案

如果页面仍在 RAM 缓存中,后退按钮实际上不会加载页面。 您可以将 JS 绑定(bind)重新加载到窗口的 onpageshow 事件。

看这里:

关于javascript - 防止缓存 JS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27912366/

相关文章:

javascript - 在 Google Apps 脚本上提示用户输入,错误为 `getUi()` 方法

javascript - 使用 jquery 发送一个数组

php - 从 Url 获取变量

javascript - WebGl 将多个对象添加到一个 Canvas

javascript - 带参数的 Node js 路由器 404

mysql - mysql memcached ndb 集群中如何进行更新

c# - 如何实现数据大小限制的缓存?

caching - 如何为 Sitecore ControllerRendering 启用缓存

javascript - 如何从使用ajax更新的json文件中提取值并将其用作php变量

javascript - 在 PHP 中从 Javascript 解码 Json 字符串