DNS更新后,已安装的PWA会继续连接到旧服务器

时间:2019-04-28 17:55:34

标签: progressive-web-apps workbox

我的域wheelofnames.com曾经指向托管在Google App Engine上的Web应用程序。我使用Workbox将应用程序设置为渐进式Web应用程序(PWA)。两天前,我将应用程序移至Firebase Hosting,这意味着我必须更新我域的DNS记录。

如今,从Web浏览器访问wheelofnames.com的用户可以从Firebase Hosting获得其内容。正如预期的那样,该域的DNS记录指向Firebase Hosting。完美!

但是在更新DNS之前,我在Android设备上安装了该应用程序的PWA版本。我今天打开该PWA时,它会向App Engine请求内容,即使wheelofnames.com的DNS记录不再指向该位置。查看App Engine日志后,我发现其他用户也有相同的体验。

如何使PWA遵循DNS记录并从新环境而不是旧环境请求内容? PWA是否以某种方式缓存DNS数据?

1 个答案:

答案 0 :(得分:1)

Cache Storage API(Workbox在幕后使用)将请求URL用作键,将Response对象用作值。

在最初请求填充缓存时,DNS解析非常重要,一旦保存Response,读取响应并稍后使用它,而与DNS解析无关。

听起来您可能需要为Web应用程序启动一个新版本,并为Workbox的预缓存提供一个机会来拾取对任何更新文件的更改,无论何时您对预缓存的内容进行更改都是如此在“幕后”使用的主机。此外,由于以缓存优先的方式显示了预先缓存的内容,所以您可能最终会在重新访问站点时立即看到以前缓存的内容,并且直到下一次访问(关闭所有选项卡之后)才看到新鲜的内容。

this recipe中所述,有一些UX模式可以允许用户选择立即查看新内容。