我有一个PWA(渐进式网络应用程序)应用程序,意图由用户“安装”。在大多数情况下,除了一个小问题外,一切都很好。问题是,当应用程序最小化(未关闭)时,数据会在一段时间后变得陈旧,理想情况下,我希望在用户再次启动应用程序时自动刷新信息。
经过一些研究,我似乎无法在页面被激活时触发HTML元素上的事件(当用户拉动应用程序时)。如果存在这样的事件,我会使用该事件运行一些代码,这些代码可以从服务器获取最新和最好的信息并同步用户界面信息,或者至少运行一些自动调用刷新的代码这页纸。
顺便说一句,我尝试研究诸如websockets和服务器发送事件之类的技术来维护用户界面数据是最新的,但这有点复杂,即使我让它工作,看起来我最终还是要处理各种断开连接的问题让我回到正方形。
所以我的问题是,实现我想要做的最好的方法是什么?
谢谢。
使用visibilitychange事件: -
document.addEventListener("visibilitychange", visibilityChange);
有关完整的工作示例,请参阅BackgroundGeolocation solution.
如果您想要更冒险或“更好”,那么您可以将Cache API与ServiceWorker一起使用,然后满足来自Cache的Fetch请求(如果可能),同时向服务器请求“下一个”查询的新副本。
恕我直言,复制数据的最佳方式是“完全没有!”。但是,我的应用程序的性质使它们像没有网络的公牛一样有用。我们还说,我们还安装了5G无线网络。我会让杰克照顾撒哈拉以中的非洲。