【第一章 WorkBox 简介】
1.1 什么是Work Box
workBox由许多node模块和插件库组成的一个库,可以轻松缓存资产并充分利Service Worker的特性用于构建Progressive Web Apps的功能。
1.2 为什么是workBox
workbox集合了许多优秀的实践,降低了开发者们使用service work过程中的难度。
- 预缓存
- 运行时缓存
- 策略
- 请求路由
- 后台同步
- 有帮助的测试
- 比sw-precache和sw-toolbox具有更大的灵活性和功能集
1.3 基础实例
- Cache JavaScript and CSS
workbox.routing.registerRoute(
/\.(?:js|css)$/,
workbox.strategies.staleWhileRevalidate(),
);
- Cache Images
workbox.routing.registerRoute(
/\.(?:png|gif|jpg|jpeg|svg)$/,
workbox.strategies.cacheFirst({
cacheName: 'images',
plugins: [
new workbox.expiration.Plugin({
maxEntries: 60,
maxAgeSeconds: 30 * 24 * 60 * 60, // 30 Days
}),
],
}),
);
一个完整的实例:官方:使用入門
【第二章 WorkBox I开发指南】
翻译自官网:使用入门
2.1 预缓存文件
2.2 路由请求
2.3 配置workbox
2.4 处理第三方请求
2.5 使用插件
2.6 常用案例
2.7 排除故障并进行调试
2.8 了解存储配额
第三章 【插件和模块】
使用更多模块
在workbox里每个模块都可以帮助开发人员定制service work的特定行为。下面,我们就来简要梳理一下workbox提供的基本模块。
关于模块的更多详尽内容,可以点击下面的文章链接查看详情。
3.1 workbox模块
根据需要管理加载模块并提供帮助方法。
翻译【前-workbox-模块1】workbox
workbox官方英文文档
3.2 workbox.core
通过workbox.core更改日志级别并更改缓存名称。 包含所有Workbox库使用的共享代码。(看名字就知道了,核心嘛)
翻译【前-workbox-模块2】workbox.core
core官方英文文档
3.3 workbox.precaching
轻松预先缓存一组文件并有效管理文件更新。
【前-workbox-模块3】workbox.precaching
precaching官方英文文档
3.4 workbox.routing
将service worker的请求路由到特定的缓存策略或回调函数。
【前-workbox-模块4】workbox.routing
routing官方英文文档
3.5 workbox.strategies
一组运行时缓存策略,用于处理对请求的响应,通常与workbox.routing一起使用。
【前-workbox-模块5】workbox.strategies
strategies官方英文文档
3.6 workbox.expiration
根据缓存中的项目数或缓存请求的期限删除缓存的请求。
【前-workbox-模块6】workbox.expiration
expiration官方英文文档
3.7 workbox.backgroundSync
即使用户离线,也可以使用后台同步可靠地发出网络请求。
【前-workbox-模块7】workbox.backgroundSync
backgroundSync官方英文文档
3.8 workbox.googleAnalytics
了解用户在离线时如何与您的网站进行互动。
【前-workbox-模块8】workbox.googleAnalytics
googleAnalytics官方英文文档
3.9 workbox.cacheableResponse
根据响应的状态代码或标头限制缓存哪些请求。
【前-workbox-模块9】workbox.cacheableResponse
cacheableResponse官方英文文档
3.10 workbox.broadcastUpdate
使用新响应更新缓存时,将消息发送到页面(通过广播通道)。
【前-workbox-模块10】workbox.broadcastUpdate
broadcastUpdate官方英文文档
3.11 workbox.rangeRequest
此模块支持使用一段先前缓存的数据响应。
rangeRequest官方英文文档
3.12 workbox.streams
此模块支持编写来自一系列流媒体源的响应。
streams官方英文文档
3.13 workbox.navigationPreload)
启用导航预加载,以更快地获得导航请求的网络响应。
【前-workbox-模块11】workbox.navigationPreload
navigationPreload官方英文文档
3.14 三个Node模块
这三个node模块其实也就是对应这3中workbox的构建方法
可以看到,这13+3个模块,前13个涵盖了workbox的绝大多数操作,后三个模块,测试从项目构建的角度方便开发者。
目前从文档支持来看,workBox支持了三种构建方式。
(1)workbox CLI
(2)workbox-build
(3)workbox-webpack-plugin
后续内容持续翻译~