因为没有使用 freeMarker 等模板,给静态文件增加动态版本号后缀无法从后端获取后渲染。
先使用了
document.write("<script src='../js/index.js?v="+Math.Random()+"'><"+'/'+"script>");
这样做虽然可以防止 js 的缓存了,但是每次刷新页面都会重新生成一个版本号,重新拉取 js 文件,导致不必要的网络开销,稍微修改了一下,使用了 sessionStorage 和时间戳,基本满足了需求了。
var timestamp = new Date().getTime();
var versionStamp = sessionStorage.version;
if (versionStamp == null || (timestamp - versionStamp) > 1800000) {
sessionStorage.version = timestamp;
}
document.write("<script src='../js/index.js?v="+sessionStorage.version+"'><"+'/'+"script>");