如何解决如何在Vue PWA中跳过等待服务的工作人员
我为我的pwa使用VUE PWA服务工作程序插件。
如果有新的退出者,我想运行新的服务工作者,但是不知道如何在我的代码中包括它。 目前,目前的服务人员甚至在24小时后都没有更新。仅当用户关闭浏览器并清除缓存时。但这当然不是我想要的。
那么,如何实现skipWaiting()呢?
这是我的registerServiceWorker.js
import { register } from 'register-service-worker'
if (process.env.NODE_ENV === 'production') {
register(`${process.env.BASE_URL}service-worker.js`,{
ready() {
console.log(
'App is being served from cache by a service worker.\n' +
'For more details,visit '
)
},registered() {
console.log('Service worker has been registered.')
},cached() {
console.log('Content has been cached for offline use.')
},updatefound() {
console.log('New content is downloading.')
},updated(registration) {
console.log('New content is available; please refresh.')
document.dispatchEvent(
new CustomEvent('swUpdated',{ detail: registration })
)
},offline() {
console.log(
'No internet connection found. App is running in offline mode.'
)
},error(error) {
console.error('Error during service worker registration:',error)
},})
}
更新部分中的代码至少会等待激活。
解决方法
无需修改service-worker.js
文件的解决方案
在您的registerServiceWorker.js
文件中,修改updated
函数,以使用代码将消息发送给默认服务人员
updated (registration) {
registration.waiting.postMessage({ type: 'SKIP_WAITING' })
}
修改了service-worker.js
文件的解决方案
在您的自定义service-worker.js
文件中,添加带有代码的侦听器
self.addEventListener('install',() => self.skipWaiting())
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。