防止缓存JS文件

时间:2015-01-12 23:11:57

标签: javascript php caching

我们有一个可能会改变每个请求的JS脚本。我们没有机会更改脚本标记的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文件缺少什么?

Charles Response headers on the first load

更新:

第1页加载了脚本标记

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

点击后退按钮,将导致第1页。但some.js显示第2页的内容。奇怪????

1 个答案:

答案 0 :(得分:0)

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

看看这里: