Service Worker的缓存时机与缓存策略

Posted 一个小前端的学习笔记

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Service Worker的缓存时机与缓存策略相关的知识,希望对你有一定的参考价值。

Service Worker提供了丰富的离线体验。但是技术的发展从来都不是孤立的。在SW出现之前,html5也提供了页面缓存方案,开发者们使用 Application Cache (AppCache)[1]接口缓存资源,不过已经不推荐使用了

知乎上面也有关于AppCache的缺点的讨论[2],想必SW已经解决了这些个问题

ServiceWorker 提供了控制缓存和处理请求的方式

SW的生命周期[3]缓存的时机

install时用户交互时网络响应时

缓存策略

无论您缓存多少内容 ServiceWorker 都不会使用缓存,除非您指示它在何时使用缓存以及如何使用

页面上的内容有两种来源,缓存和网络,然后就排列组合吧

全部来自缓存全部来自网络取缓存的内容失败了再去请求网络请求网络失败了去请求缓存两个一起请求看谁快先去取缓存,然后再去请求网络两个都失败了,就只好做一个错误处理,叫Generic fallback


先了解一下理论,明天准备给自己的站正式上SW[4]

References

[1] Application Cache (AppCache): https://developer.mozilla.org/en-US/docs/Web/HTML/Using_the_application_cache
[2] AppCache的缺点的讨论: https://www.zhihu.com/question/29876535
[3] SW的生命周期: https://blog.bitsrc.io/understanding-service-workers-and-caching-strategies-a6c1e1cbde03
[4] 自己的站正式上SW: https://www.so-easy.cc/wechat-editor/


以上是关于Service Worker的缓存时机与缓存策略的主要内容,如果未能解决你的问题,请参考以下文章

转载古典浏览器缓存和Service Worker对比

Service Worker和HTTP缓存

如何清除 Firefox 中的 Service Worker 缓存?

Service Worker 配置 - 网络然后缓存

使用Service Worker和离线缓存Cache

Workbox Service Worker 不在缓存中存储图像和 API 响应