Vue.js 如何跳过Vue PWA中的等待服务工作人员
我为我的PWA使用VUE PWA服务工作者插件 如果存在新的服务人员,我想运行新的服务人员,但不知道如何将其包含在我的代码中。 目前,当前的服务人员在24小时后甚至没有更新。仅当用户关闭浏览器并清除缓存时。但那当然不是我想要的 那么,如何实现skipWaiting() 这是我的registerServiceWorker.jsVue.js 如何跳过Vue PWA中的等待服务工作人员,vue.js,progressive-web-apps,service-worker,skip,Vue.js,Progressive Web Apps,Service Worker,Skip,我为我的PWA使用VUE PWA服务工作者插件 如果存在新的服务人员,我想运行新的服务人员,但不知道如何将其包含在我的代码中。 目前,当前的服务人员在24小时后甚至没有更新。仅当用户关闭浏览器并清除缓存时。但那当然不是我想要的 那么,如何实现skipWaiting() 这是我的registerServiceWorker.js import { register } from 'register-service-worker' if (process.env.NODE_ENV === 'prod
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
函数,以使用代码向默认服务人员发送消息
更新(注册){
registration.waiting.postMessage({type:'SKIP_waiting'})
}
修改了
服务工作者.js
文件的解决方案
在自定义的service worker.js
文件中,添加一个带有代码的侦听器
self.addEventListener('install',()=>self.skipWaiting())
解决方案,无需修改service worker.js
文件
在您的registerServiceWorker.js
文件中,修改updated
函数,以使用代码向默认服务人员发送消息
更新(注册){
registration.waiting.postMessage({type:'SKIP_waiting'})
}
修改了服务工作者.js
文件的解决方案
在自定义的service worker.js
文件中,添加一个带有代码的侦听器
self.addEventListener('install',()=>self.skipWaiting())
service worker仅在您更改service worker中至少1个字节后更新(例如重命名service worker缓存)。只有当您关闭浏览器中的每个会话时,他才会更新。用“会话”的说法,@lfaruki表示所有打开站点的选项卡和窗口。只有在您至少更改了服务工作者中的1个字节后,服务工作者才会更新(例如,重命名服务工作者缓存)。只有当你关闭浏览器中的每一个会话时,他才会更新。所谓的会话,@lfaruki是指所有打开站点的选项卡和窗口