前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Service Worker Cache 和 HTTP Cache 的区别

Service Worker Cache 和 HTTP Cache 的区别

作者头像
Jerry Wang
发布2022-08-07 15:05:38
5570
发布2022-08-07 15:05:38
举报

本文阐述在 Service Worker 缓存和 HTTP 缓存层中使用一致或不同的过期逻辑的优缺点

虽然 Service Worker 和 PWA 正在成为现代 Web 应用程序的标准,但资源缓存已变得比以往任何时候都更加复杂。 对于前端开发者来说,有必要了解 Service Worker 缓存和 HTTP 缓存的用例和区别,以及与常规 HTTP 缓存策略相比,不同 Service Worker 缓存过期策略的优缺点。

概括地说,浏览器在请求资源时遵循以下缓存顺序:

(1) Service Worker 缓存:Service Worker 检查资源是否在其缓存中,并根据其编程的缓存策略决定是否返回资源本身。 请注意,这不会自动发生。 您需要在服务工作者中创建一个 fetch 事件处理程序并拦截网络请求,以便从服务工作者的缓存而不是网络提供请求。

(2) HTTP缓存(也称为浏览器缓存):如果资源在HTTP缓存中找到并且还没有过期,浏览器会自动使用HTTP缓存中的资源。

(3) 服务器端:如果在 service worker 缓存或 HTTP 缓存中没有找到,浏览器会去网络请求资源。 如果资源没有缓存在 CDN 中,则请求必须一直返回到源服务器。

Service worker caching

Service Worker 拦截网络类型的 HTTP 请求,并使用缓存策略来确定应将哪些资源返回给浏览器。 Service Worker 缓存和 HTTP 缓存具有相同的通用目的,但 Service Worker 缓存提供了更多缓存功能,例如对缓存内容和缓存方式的细粒度控制。

Service Worker 使用事件侦听器(通常是 fetch 事件)拦截 HTTP 请求。 下列代码片段演示了 Cache-First 缓存策略的逻辑。

对于 SAP 电商云 Spartacus UI 来说,一旦以 PWA 模式安装了 Spartacus,就会安装一个 service worker,它会提供 index.html 的缓存版本以及 js 文件。 这会导致完全跳过 Spartacus 的服务器端渲染过程。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-08-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Service worker caching
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档