Skip to content

robbiemie/serviceworker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

service Worker 实践

serviceworker 方案已集成到 webpack-plugins,源码请参考: serviceworker-webpack-plugins

启动项目

  1. 下载到本地
$ git clone [email protected]:yang657850144/serviceworker.git
  1. npm install

  2. 执行 npm run server

生命周期

通过了解生命周期,进行创建 service worker,。

  • 注册 (register)
  • 安装 (install)
  • 激活 (activate)

如何工作

通常使用 service worker 只需要以下几个步骤:

  • 检测是否支持serivceworker

首先,检测当前环境是否支持 service worker,可以使用 'serviceWorker' in navigator 进行检测。

  • 注册

如果支持,可以使用 navigator.serviceWorker.register('./sw.js'),在当前主线程中注册 service worker。如果注册成功,service worker 则在 ServiceWorkerGlobalScope 环境中运行; 需要注意的是: 当前环境无法操作DOM,且和主线程之间相互独立(即线程之间不会相互阻塞)。

  • 安装

然后,后台开始安装service worker,一般在此过程中,开始缓存一些静态资源文件。

  • 激活

安装成功之后,准备进行激活 service worker,通常在激活状态下,主要进行缓存清理,更新service worker等操作。

  • 使用

激活成功后,,service worker 就可以控制当前页面了。需要注意的是,只有在service worker成功激活后,才具有控制页面的能力,一般在第一次访问页面时,service worker第一次创建成功,并没有激活,只有当刷新页面,再次访问之后,才具有控制页面的能力。

serviceworker相关文档

基础知识

  1. 概述
  2. 什么是serviceworker
  3. 如何使用
  4. 生命周期
  5. Service_Worker_API

离线化开发

  1. 借助serviceworker和cacheStorage离线开发
  2. cacheStorage接口文档

缓存更新

  1. 缓存更新常用方式
  2. 缓存更新改进建议
  3. Service Worker 更新机制

最佳实践

  1. Service Worker最佳实践
  2. Service Worker 全面进阶

前端缓存相关文档

  1. 一文读懂前端缓存

Releases

No releases published

Packages

No packages published