Service Worker — 实现离线应用

用于离线缓存

可以用来实现离线应用,本质上充当应用程序、浏览器和网络之间的代理服务器。

用于实现离线缓存时,它拦截 web 应用的一切请求,然后判断哪些可以直接返回缓存中的内容,哪些请求要发送到服务器。

取代 AppCache,能更精细控制。

其它使用场景

service worker 是注册在指定源和路径下的事件驱动的worker。

它工作在 worker 上下文。相对于驱动应用的主 JavaScript 线程,它工作在其它线程中,因此不会造成阻塞。

所以它还有很多其他的应用场景,例如:

  • 后台数据同步,即使没有用户访问,也能更新缓存
  • 集中更新计算成本高的数据,这样多个页面就可以利用同一种数据
  • 自定义模板用于特定url模式
  • 性能增强,比如预取用户可能需要的资源,比如相册中的后面数张图片
  • 响应推送,向用户发送内容更新的推送消息

注意

  • 出于安全考量,Service workers只能由HTTPS承载。为了便于开发,localhost 也被认为是安全源
  • 兼容性

使用

参考文章

Service Worker API
使用 Service Workers

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容