zoukankan      html  css  js  c++  java
  • [PWA] Show an Error when a POST or DELETE Fails in an Offline PWA

    We're storing JSON data in the cache - but that only applies to HTTP GET requests - and not to POST or DELETE requests.

    We'll add a fetch event listener to the service worker, where we can intercept all fetch requests in our app. We'll forward them to the server - but if they fail, then we'll return an error back to the app.

    In the app, we can detect that error, and respond by showing an alert that the functionality isn't available in offline mode.

    console.log("IN sw.js")
    
    workbox.skipWaiting();
    workbox.clientsClaim();
    
    workbox.routing.registerRoute(
        new RegExp('https:.*min.(css|js)'),
        workbox.strategies.staleWhileRevalidate({
            cacheName: 'cdn-cache'
        })
      )
    
      workbox.routing.registerRoute(
        new RegExp('(http|https|localhost)://.*:4567.*.json'),
        workbox.strategies.networkFirst()
      )
    
     // Handle the POST and DELETE requests by SW
      self.addEventListener('fetch', event => {
        if (event.request.method === "POST" || event.request.method === "DELETE") {
          event.respondWith (
            fetch(event.request).catch(err => {
              return new Response(
                JSON.stringify({error: "This action disabled while app is offline"}),
                {headers: {
                  'Content-Type': 'application/json'
                }}
              )
            })
          )
        }
      })
    
    workbox.precaching.precacheAndRoute(self.__precacheManifest || [])
  • 相关阅读:
    latex之图表位置控制
    iPhone应用程序的启动过程
    zend server mac 下配置
    外键约束
    yii2中的资源....
    Composer fails to download http json files on "update", not a network issue, https fine
    UIResponder
    UIApplication深入学习
    UISCREEN 和支持高分辨率的显示屏
    IOS7 隐藏状态栏 (电池栏)
  • 原文地址:https://www.cnblogs.com/Answer1215/p/10199432.html
Copyright © 2011-2022 走看看