3

我开发了一个 PWA。我遇到的一个问题是,当发布新版本时,我会增加服务工作者文件 (sw.js) 中的版本号,并且当它运行时,缓存会很好地重新生成。版本号是缓存名称,因此更改应该会触发它在运行时执行的新缓存。

这里的问题是它何时运行。

我的一些客户发现很难“获取”最新版本,因为他们的浏览器不想加载新版本并坚持提供旧版本,直到我指示客户手动清除浏览器缓存并重新加载 Chrome。

在我的项目中,我在一个名为 app.js 的 js 文件中注册了我的 service worker。

可能问题是 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 的人......这会导致任何不利影响吗?

谢谢

4

0 回答 0