当服务器端代码更新(与
JavaScript相关)时,旧的JavaScript文件从缓存中提供.
我需要一个解决方案,旧的JavaScript文件更新到他们的新版本.更新服务器上的文件后,需要使浏览器缓存(与JavaScript相关)无效.
我有这个问题的以下解决方案.
var randomnumber=Math.floor(Math.random()*10000); var scriptfile='http://www.whatever.com/myjs.js?rnd='+randnumber;
解决方法
大多数站点 – 包括Stack Overflow – 使用其版本控制系统中的修订号:
var scriptfile='http://www.whatever.com/myjs.js?rnd='+revision_number;
每当修订版本发生更改时,浏览器都会指向“新”JavaScript文件.
您也可以手动执行此操作,方法是在某处的中心位置指定版本号,并将该版本号添加到每个脚本调用中.更新JavaScript的一部分时,只需增加版本号即可.
第三种方法是检查您所包含的JavaScript文件的“上次修改”时间,并从中构建时间戳:
var scriptfile='http://www.whatever.com/myjs.js?version=20100803';
但这需要服务器端脚本,并且可能在每个页面请求上都太昂贵.