如何强制服务人员清除缓存?

时间:2018-12-04 16:28:21

标签: javascript caching progressive-web-apps progressive

我已经开发了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的人... 这会造成不利影响吗?

谢谢

0 个答案:

没有答案