在我的项目中,我通过import()。然后。
异步加载json文件有时,当新内容可用但尚未应用时,旧的缓存脚本包会尝试按旧名称加载json文件(因为捆绑会在每次构建时生成新的哈希名称)。但是这些文件不再可用了。
我看到很多应用都使用toast留言来通知用户有关更新的内容,以便他们可以刷新,但还有其他方法可以解决此问题吗?
答案 0 :(得分:1)
没有。没有自动处理方法。
根据您的问题,我认为您的SW配置使用缓存优先策略。由于它是一个缓存优先策略,所描述的情况可能会发生并且有时会发生。
您有两种选择:
预处理所有JSON文件。这样,当旧的JS代码尝试异步获取JS文件时,它们将从SW的缓存中提供,而不是去网络。客户端获取整个应用程序的旧版本,包括JSON文件。
实现某种复杂(ish)自定义逻辑,尝试获取文件并在错误情况下与服务器通信,获取正确的文件名,然后再次尝试使用新文件名。您可以轻松生成列出所有当前JSON文件名的文件。
这两个选项都有不同的问题,根据应用程序的不同,它们可能会也可能不会。