前端文章
PWA 实践:Service Worker、缓存策略与 Workbox
PWA(Progressive Web App,渐进式 Web 应用)不是一项技术,而是一组 Web 能力的组合。常见的说法是:这个词由 Alex Russell 和 Frances Berriman 在 2015 年提出,2016 年 Google I/O 之后被大规模推广(很多文章写成"2016 年提出")。它的核心主张是:用 Web 技术做出接近原生应用的体验,包括离线可用、桌面图标、全屏运行、消息推送、后台同步。
// main.js(页面主线程),等 load 之后再注册,避免和首屏抢带宽
if ("serviceWorker" in navigator) {
window.addEventListener("load", () => {
navigator.serviceWorker
.register("/service-worker.js", { scope: "/" })
.then(registration => {
console.log("SW 注册成功", registration.scope);
})
.catch(error => {
console.error("SW 注册失败", error);
});
});
}