我已经开发了PWA。我遇到的一个问题是,当发布新版本时,我增加了服务工作程序文件(sw.js)中的版本号,并且在运行缓存时可以很好地重新生成它。版本号是缓存名称,因此更改应触发它在运行时执行的新缓存。
这里的问题是它何时运行。
一些客户发现很难“获取”最新版本,因为他们的浏览器不想加载新版本,并且坚持提供旧版本,直到我指示客户端手动清除浏览器缓存并重新加载Chrome。
在我的项目中,我的服务工作者在一个名为app.js的js文件中注册。
也许问题是sw.js导入并在app.js文件中注册并带有以下行:
.register('/ public / sw.js')
我的问题是,是否可以在app.js上使用缓存清除技术,以便该文件每次运行一次,然后在对sw.js文件进行更改时(以新版本表示)是否可以运行数字),将不使用旧的缓存,而是创建一个新的缓存。
对于缓存无效的app.js,我将使用
var versionUpdate = (new Date()).getTime();
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "/js/app.js?v=" + versionUpdate;
document.body.appendChild(script);
对于那些了解PWA的人... 这会造成不利影响吗?
谢谢