javascript - 如何从 Service Worker 发送 "offline"消息?

标签 javascript service-worker

我如何返回缓存,并显示一条消息说离线。可能吗?

到目前为止我的代码只是发回缓存:

const cachedFetch = request => request.method != 'GET' ? 

  fetch(request) : 
  caches.open("demo").then(cache =>
    cache.match(request).then(resp => {
      if(!!resp) {
        console.log('cache', request.url)
        return resp;// how to send custom message back with resp
      } else {
        console.log('not in cache', request.url)
        return fetch(request).then(response => {
         return response


        })
      }
    })
  )

self.addEventListener('fetch', event => event.respondWith(
    cachedFetch(event.request)
  )
)

最佳答案

Service Worker 可以使用 postMessage()通知客户。或者,应用程序也可以独立于 Service Worker 监听在线/离线事件:

https://developer.mozilla.org/en-US/docs/Web/API/NavigatorOnLine/Online_and_offline_events

关于javascript - 如何从 Service Worker 发送 "offline"消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61682027/

相关文章:

javascript - 我的内联 SVG 和嵌入式 SVG 存在问题

javascript - Service Worker 正在抓取一切

reactjs - React Service Worker 将文件添加到缓存

javascript - 工厂方法似乎未定义

javascript - 如何验证浏览器是否支持后台同步?

node.js - 如何使用服务 worker 缓存handlebars.js

javascript - 即使浏览器关闭,服务人员也会在后台运行吗?

javascript - 谷歌蜡烛图设置线宽不起作用

javascript - keypress 和 keydown 通过 event.which 提供不同的代码

javascript - Android Chrome 浏览器中的通知 API