使用JavaScript强制刷新资产
我在浏览器缓存资产(静态文件,如css和js)和在web服务器上更新时不更新资产方面遇到了麻烦。我认为web服务器(不幸的是IIS 6.0)应该报告上次更改的日期,以便浏览器刷新,但事实并非如此 我正在考虑在web应用程序的版本更改时强制刷新。可能将版本存储在cookie或HTML5存储上(在IE中工作?),并在JavaScript看到版本过时时强制刷新 使用cookie存储JavaScript是否可靠?或者我应该用另一种方式使用JavaScript强制刷新资产,javascript,browser-cache,page-refresh,Javascript,Browser Cache,Page Refresh,我在浏览器缓存资产(静态文件,如css和js)和在web服务器上更新时不更新资产方面遇到了麻烦。我认为web服务器(不幸的是IIS 6.0)应该报告上次更改的日期,以便浏览器刷新,但事实并非如此 我正在考虑在web应用程序的版本更改时强制刷新。可能将版本存储在cookie或HTML5存储上(在IE中工作?),并在JavaScript看到版本过时时强制刷新 使用cookie存储JavaScript是否可靠?或者我应该用另一种方式 如何使用JavaScript强制刷新?浏览器的F5似乎可以完成这项工
如何使用JavaScript强制刷新?浏览器的F5似乎可以完成这项工作,如何从JavaScript中完成这项工作?我使用它在特定项目上重新加载主CSS文件:
var reloadStyle = function(el) {
// reload CSS resource without refreshing the whole page
var updateRandomQuery = function(s) {
return(s.replace(/nocache=.*$/,'nocache=' + (Math.random()*1000).toFixed()));
}
el.setAttribute('href', updateRandomQuery(el.getAttribute('href')));
}
// TODO: reload images, etc
reloadStyle(document.getElementById('MainStyle'));
该脚本可以扩展为一般地重新加载所有CSS,然后遍历图像和背景图像并重新加载它们。这只需要一些时间,我现在没有
因此,为了让事情变得清楚,它不会“开箱即用”地用于任何其他项目。但是如果你理解JavaScript,它可以给你一个想法
我已经使用Chrome快捷键插件将这段JavaScript映射到“Alt-R”组合键。
window.location.reload()
?这是为了刷新页面,但我认为你的问题并不是源于页面刷新。也许设定一个缓存时间限制。谢谢。我会试试的