Luc*_*uer 3 javascript web service-worker progressive-web-apps
是否可以识别服务器上的更新,即页面(HTML)或样式(CSS)上的更新,并向服务器发出请求以获取更新的数据?如果是这样,怎么办?
不久;
有细节;
1) 更改您的软件以替换当前的一个用户。
即使您的软件发生了最轻微的变化,也足以将其视为新版本,因此它将接管旧版本。谷歌网络开发者的这句话解释了这一点;
更新您的 Service Worker JavaScript 文件。当用户导航到您的站点时,浏览器会尝试重新下载在后台定义 Service Worker 的脚本文件。如果 Service Worker 文件与当前文件相比甚至有一个字节的差异,它就会认为它是新的。
最佳实践是在软件中的任何位置保留版本号,并在内容更改时以编程方式更新它。甚至可以引用,没关系,它仍然有效。请记住:即使是一个字节的差异也足够了。
2) 将您的更改反映到要缓存的项目列表中。
您保留要缓存在软件中的资产列表。因此,请将添加/更新/删除的资产反映到您的列表中。最佳实践是为您的资产设置缓存破坏程序。可以这么说,这是因为 SW 位于浏览器缓存后面的一层。
换句话说:来自软件的获取请求会经过浏览器缓存。因此,SW 将从浏览器缓存而不是服务器中选择新资源,并缓存这些资源,直到 SW 再次更改。
在这种情况下,您最终将有一半的用户将 PWA 与新资产一起使用,而另一半则遭受令人难以置信的错误。你会度过一段美好的时光,因为你会过度地抱怨和沮丧,因为无法找到原因或重现这些问题的方法。
3)替换旧的缓存,不要合并它。
如果您不更改更新后的资源列表的缓存名称,这些资源将与旧资源合并。
合并将以保留旧资产和删除资产的方式进行,同时添加新资产和更改资产将被替换。虽然这种方式看起来一切正常,但您将在用户设备上积累旧资产。而且你存储的空间并不是无限的。
4)大家都很开心
实施和跟踪所有提到的事情可能看起来很乏味,但我向您保证,否则您将开始处理更大、更不愉快的事情。不满意的用户将是一个很好的加分。
因此,我鼓励您一次性设计您的软件。
| 归档时间: |
|
| 查看次数: |
5427 次 |
| 最近记录: |