我的域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数据?
答案 0 :(得分:1)
Cache Storage API(Workbox在幕后使用)将请求URL用作键,将Response
对象用作值。
在最初请求填充缓存时,DNS解析非常重要,一旦保存Response
,读取响应并稍后使用它,而与DNS解析无关。
听起来您可能需要为Web应用程序启动一个新版本,并为Workbox的预缓存提供一个机会来拾取对任何更新文件的更改,无论何时您对预缓存的内容进行更改都是如此在“幕后”使用的主机。此外,由于以缓存优先的方式显示了预先缓存的内容,所以您可能最终会在重新访问站点时立即看到以前缓存的内容,并且直到下一次访问(关闭所有选项卡之后)才看到新鲜的内容。
如this recipe中所述,有一些UX模式可以允许用户选择立即查看新内容。