更新 PWA 应用程序(反应)

Update PWA application (react)

我有一个使用 create-react-app 创建的 PWA 应用程序。

如何更新我的 PWA 应用程序以获取服务器上的最新更改,而不是从其缓存中获取?

我正在使用 React 版本 +17 并使用 serviceWorker 使用此 CRA 创建 PWA 应用程序。

您可以通过卸载并重新安装它们来更新已安装的 PWA 应用程序以获得最新的更改。

但是,如果您熟悉 CRA 应用程序中的 ServiceWorker,则可以轻松地扩展您的 Service Worker,以根据每次加载或任何手动条件更新您的应用程序。

打开你的 service worker 注册文件并在上面找到 registerValidSW 函数。添加此行:

function registerValidSW(swUrl, config) {
  navigator.serviceWorker
    .register(swUrl)
    .then((registration) => {

      registration.update();        // <--------------- add this line ----

      registration.onupdatefound = () => {
        const installingWorker = registration.installing;
        if (installingWorker == null) {
          return;
        }
      }
    })
}

您可以添加一个时间间隔来定期更新您的应用程序。

      // to update application on startup load
      registration.update();

      // create interval to update every 5 minutes
      setInterval(() => {
        registration.update();
        console.debug('Checked for update...');
      }, 1000 * 60 * 5);   // <--- this will update your application after 5 minutes.