我如何告诉 Workbox 检查新版本(页面加载后很久)
How can I tell Workbox to check for a new version (long after page is loaded)
我有一个复杂的应用程序,它可以离线运行并在恢复在线时同步。唯一没有 "sync" 的是应用程序本身。
我知道如何在新版本 "installed" 时收到消息,但我不知道如何告诉 Workbox 检查更新。我想要相当于:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw-test/sw.js', {scope: 'sw-test'}).then(function(registration) {
// registration worked
console.log('Registration succeeded.');
button.onclick = function() {
registration.update(); // <=== THIS WITH Workbox
}
}).catch(function(error) {
// registration failed
console.log('Registration failed with ' + error);
});
};
[编辑] 在 github 上找到这个
https://github.com/GoogleChrome/workbox/blob/master/packages/workbox-window/src/Workbox.ts#L193
但截至 2019 年 8 月,TypeScript 类型不同步。
// Very recent change in Workbox
await wb.update()
// Or
const reg = wb.register()
// ...
reg.update()
Workbox 没有在页面加载后检查更新的功能。
您如何手动触发更新检查,如下所示。
navigator.serviceWorker.register('/sw.js').then(reg => {
setInterval(function () {
reg.update();
},<intervalInMilliseconds>);
});
带工作箱
您可以使用最近推出的更新方法。但是您仍然需要使用 setInterval 并调用更新功能。
我有一个复杂的应用程序,它可以离线运行并在恢复在线时同步。唯一没有 "sync" 的是应用程序本身。
我知道如何在新版本 "installed" 时收到消息,但我不知道如何告诉 Workbox 检查更新。我想要相当于:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/sw-test/sw.js', {scope: 'sw-test'}).then(function(registration) {
// registration worked
console.log('Registration succeeded.');
button.onclick = function() {
registration.update(); // <=== THIS WITH Workbox
}
}).catch(function(error) {
// registration failed
console.log('Registration failed with ' + error);
});
};
[编辑] 在 github 上找到这个 https://github.com/GoogleChrome/workbox/blob/master/packages/workbox-window/src/Workbox.ts#L193
但截至 2019 年 8 月,TypeScript 类型不同步。
// Very recent change in Workbox
await wb.update()
// Or
const reg = wb.register()
// ...
reg.update()
Workbox 没有在页面加载后检查更新的功能。 您如何手动触发更新检查,如下所示。
navigator.serviceWorker.register('/sw.js').then(reg => {
setInterval(function () {
reg.update();
},<intervalInMilliseconds>);
});
带工作箱
您可以使用最近推出的更新方法。但是您仍然需要使用 setInterval 并调用更新功能。