来自客户端

时间:2018-04-15 15:14:18

标签: progressive-web-apps application-cache

更新 - 不知道怎么更新这个以说发表评论让我意识到我做错了什么?无论哪种方式,现在都可以解决这个问题,谢谢

我从包含对象列表的服务器返回JSON,每个对象代表一个数字帖子(文本,页面上的位置,数据库ID等)。我在正常提取过程中将其缓存在服务工作者中。

目前,当用户更新/添加帖子时,我会在javascript中更新JSON的本地副本,并将信息发送到服务器。

我想要做的是当他们更新/添加项目时,客户端JS也会将新的JSON保存到应用程序缓存中,然后在页面加载时使用缓存重新验证模式,这样他们只需要刷新另一个用户对他们的数据进行更改。否则,他们将获得已经包含其最新更改的缓存JSON。

当应用程序缓存版本化并且版本号存储在sw.js文件中时,我当前正在从客户端向SW发送消息(使用MessageChannel)以获取版本号,以便客户端可以将JSON放入正确的缓存中。我能想到的唯一其他选项是将应用程序缓存版本设置为除SW.js之外的其他地方的全局变量,或者只是将消息中的整个JSON发送到SW并让它将更新JSON放入缓存中。 / p>

无论哪种方式,这些似乎都是变通/反模式,我似乎无法找到客户端更新应用程序缓存的更好方法。

我想这样做的另一个原因是我最终可以使用后台同步api来处理离线模式,以处理添加/更新等。所以希望缓存的JSON尽可能最新。

我在某个地方错过了一个技巧吗?

0 个答案:

没有答案