我们有一个可能会改变每个请求的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文件缺少什么?
更新:
第1页加载了脚本标记
点击第1页后,客户将重定向到新页面;第2页.sscript src =“some.js等等。some.js是在服务器上动态生成的,并且输出了一些内容。
点击后退按钮,将导致第1页。但some.js显示第2页的内容。奇怪????
答案 0 :(得分:0)
如果仍然在RAM缓存中,后退按钮实际上不会使页面加载。
您可以将JS绑定重新加载到窗口的onpageshow
事件。
看看这里: