我的域wheelofnames.com曾经指向一个托管在Google app Engine上的web应用程序。我用Workbox把它做成了一个渐进式的网络应用。两天前,我将应用程序移到了Firebase主机上,这意味着我必须更新我的域名的DNS记录。
如今,用户通过网页浏览器访问wheelofnames.com时,他们的内容都是通过Firebase主机提供的。这与预期不谋而合,因为该域的DNS记录指向Firebase主机。太棒了!
但在DNS更新之前,我在我的Android设备上安装了PWA版本的应用程序。当我今天打开PWA时,它请求来自App Engine的内容,即使wheelofnames.com的DNS记录不再指向那里。查看App Engine日志,我发现其他用户也有相同的体验。
如何让PWA遵循DNS记录并从新环境而不是旧环境请求内容?PWAs会以某种方式缓存DNS数据吗?
发布于 2019-05-01 14:22:18
Cache Storage API ( Workbox在幕后使用)使用请求URL作为键,使用Response
对象作为值。
虽然DNS解析在最初请求填充缓存时很重要,但一旦保存了Response
,读取响应并在以后使用它时就会发生,而不考虑DNS解析。
听起来你可能需要为你的web应用程序启动一个新的构建,并给Workbox的precaching一个机会来获取对任何更新文件的更改,这将是任何时候你对预先缓存的内容进行更改的情况,而不管是什么主机在“幕后”使用。此外,因为预先缓存的内容是以缓存优先的方式显示的,所以当您重新访问一个站点时,可能会立即看到以前缓存的内容,直到下一次访问(在所有选项卡都已关闭之后)才会看到新的内容。
有一些UX模式可以让用户选择立即查看新内容,如this recipe中所述。
https://stackoverflow.com/questions/55893060
复制