我在使用浏览器缓存资源(静态文件,如css和js)时遇到问题,而在Web服务器上更新时却没有更新它们。我认为Web服务器(不幸的是IIS 6.0)应该报告上次更改的日期,以便浏览器刷新,但它没有发生。
我正在考虑更改网络应用程序版本时的强制刷新。也许在cookie或HTML5存储上存储版本(在IE中工作?)并在JavaScript看到版本过时时强制刷新。
使用cookie进行JavaScript存储是否可靠?或者我应该用其他方式吗?
我如何使用JavaScript强制刷新?浏览器的F5似乎可以完成这项工作,我该怎么做呢?
答案 0 :(得分:0)
我用它来重新加载特定项目的主要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,它可以给您一个想法。
我已将这一点JavaScript映射到" Alt-R"使用Chrome Shortkey插件进行组合键。