首页
学习
活动
专区
圈层
工具
发布

Service Worker和HTTP缓存

很多人,包括我自己,初看Service Worker多一个Cache Storage的时候,就感觉跟HTTP长缓存没什么区别。...例如大家讲的最多的Service Worker能让网页离线使用,但熟悉HTTP缓存的朋友,会发现,把整站所有资源设置为长缓存(不带校验),也可以实现离线使用。...那么,Service Worker在缓存方面和HTTP缓存比较,有什么好处呢?...Service worker除了针对PWA(推送和消息)以外,对普通web来说,在缓存方面,能比http缓存带来一些额外的好处。 可以理解为,SW就是浏览器把缓存管理开放一层接口给开发者。...每个资源都长缓存。而这个过程,就需要改变了项目结构,至少多一个js或者一段js控制版本号,发起请求时还需要url中注入冬天的文件名。使用了SW,就可以把这部分非业务逻辑整合到sw js中。

1.6K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Service Worker离线缓存实战

    背景介绍 最近实战了 Service Worker(以下简称“sw”)来进行网站缓存,以实现离线状态下,网站仍然可以正常使用。...> body> html> 注册 Service Worker 我们通过script.js来判断浏览器是否支持 serviceWorker,并且加载对应的代码。...Service Worker 最佳实践 笔者爬了很久的坑,中途看了很多人的博客,包括张鑫旭老师的文章。但是实践的时候都出现了问题,直到读到了百度团队的文章才豁然开朗。.../image.png"]); }) ); }); 更新 Service Worker 代码 对于缓存的更新,可以通过定义版本号的方式来标识,例如上方代码中的 VERSION 变量...参考链接 本文全部代码地址 Service Worker 生命周期 百度团队:怎么使用 ServiceWorker Web Worker 开发模式

    1.6K10

    Service Worker 缓存文件处理

    交代背景 前段时间升级了一波Google Chrome,发现我的JulyNovel站点Ctrl+F5也刷新不了,后来发现是新的Chrome已经支持Service Worker,而我的JulyNovel也满足...之前加载过的css和js都被缓存了。 所以这里是有点小问题的,毕竟我服务器更新了,你service worker 没给我更新缓存,就说不过去了。...Service Worker生命周期的意义 1.实现离线优先(这个不谈,没网也能搞事?这妥妥的Native的能力啊) 2.允许新服务工作线程自行做好运行准备,无需中断当前的服务工作线程。...install 根据我的理解,这个环节只在第一次打开网站时加载,一系列操作保证其原子性(要么可用,要么废弃) Activate service worker被激活,某些请求就会变成 from ServiceWorker...更新service worker 这里就是解决问题的关键了。

    1.5K30

    Workbox5+Webpack4构建离线应用

    目前常见的缓存方式有http缓存、memory cache、disk cahce、localstorage、Service worker缓存等方式,本文介绍的Workbox就是实现Service worker...那么问题来了,Service worker离线缓存和传统的缓存方式对比,有什么优势和劣势呢,service worker之所以越来越流行,是因为它让前端缓存脱离了服务端,不需要服务端再额外做些什么,前端工程师自己就可以实现缓存...和 workbox.core.cacheNames.runtime 获取当前定义的预缓存和动态缓存名称。...) 更多配置下信息请参考官方文配置文档 预缓存功能 预缓存功能可以在service worker安装前将一些静态文件提前缓存下来,这样就能保证service worker安装后可以直接存缓存中获取这些静态资源...如果正常引入,我们可以在控制台中看到下图: 总结 service worker实现缓存有非侵入、持久化、缓存内容可控等优点 Workbox可以理解为service worker的库,利用它可以快速进行

    1.5K10

    你的web应用支持离线访问和策略缓存吗?

    对于缓存,我们并不陌生,但是我们想有主观意识的缓存,我想缓存什么,缓存多久,缓存和请求资源的策略是什么都有自己来定,service worker 能帮我们做到。...,通过以下代码就能完成应用中 service worker 的注册,后面关于 service worker 相关的处理,在 sw.js 文件中进行。...worker 注册成功 到这里完成了,完成了 service worker 的注册,关于其相关的配置和处理,我们一起去 sw.js 文件中定义吧!...Google推出的、标准统一api操作的、基于 service worker 的策略缓存库,它有以下几点让人称赞的特点 1.Precaching2.Runtime caching3.Strategies4...开始使用Workbox Workbox 定义了标准统一API,我们来看如何借助它提供的API逐步优化项目 路由请求定义缓存 在 Workbox 中,最核心的概念要数基于路由的策略缓存了,这里抓住两个关键词

    1.2K20

    【腾讯云前端性能优化大赛】前端性能和加载体验优化实践(附:PWA、离线包、内存优化、预渲染)

    支持缓存,Service Worker。...Worker A.3.1.1 什么是 Workbox Workbox 是一组库,可以帮助开发者编写 Service Worker,通过 CacheStorage API 缓存资源。...当一起使用 Service Worker 和 CacheStorage API 时,可以控制网站上使用的资源(HTML、CSS、JS、图像等)如何从网络或缓存中请求,甚至允许在离线时返回缓存的内容。...A.3.1.2 如何使用 Workbox Workbox 是由许多 NPM 模块组成的。首先要从 NPM 中安装它,然后导入项目 Service Worker 所需的模块。...预缓存 除了在发出请求时进行缓存(运行时缓存)之外,Workbox 还支持预缓存,即在安装 Service Worker 时缓存资源。

    3.1K121

    Service Worker 实现 web 应用消息推送

    Service Worker 介绍 Service Worker 是事件驱动的 worker,生命周期与页面无关,关联页面未关闭时,它也可以退出,没有关联页面时,它也可以启动. service worker...如何灵活地控制缓存,可以参考 Google 官方文章 《The Offline Cookbook》。 1.4....状态管理 Service worker 有两类状态,一类是 service worker 线程的运行状态,另一类是 service worker 脚本版本的状态。...worke 文件并且注入相应配置到 webpack pipline, 适合简单的配置需求 InjectManifest插件将生成一个预先缓存的URL列表,并将该预先缓存清单添加到现有的服务工作文件中,...__precacheManifest, {}); // html的缓存策略 workbox.routing.registerRoute( new RegExp('.*\.(?

    2.6K20

    如何在 Vue 项目中缓存字体文件以提高性能

    本文将详细探讨如何在 Vue.js 项目中优化字体文件的加载和缓存,以提高页面性能。 一、为什么要缓存字体文件?...利用服务工作者(Service Worker) Service Worker 是一种可以在后台运行的脚本,可以拦截和缓存网络请求,提供离线支持,并加速资源加载。我们可以使用它来缓存字体文件。...步骤: 安装 Workbox:Workbox 是 Google 提供的一个工具库,简化了 Service Worker 的创建。...font-style: normal; } 缓存子集字体:结合上文中的浏览器缓存或 Service Worker 缓存策略,确保这些优化后的字体文件同样可以被缓存。...如果你的应用需要支持离线访问或对性能要求较高,推荐使用 Service Worker 或 PWA 进行缓存。

    59310

    【腾讯云前端性能优化大赛】前端首屏性能优化

    [image-20211227144006470.png] 5、离线缓存(Service Worker) 5.1、简介 除了上述说的手段,减小资源体积,提高资源传输速度之外,我们还可以有一些优化方式,那就是缓存...那么我们如何缓存呢?这里就不讲什么协商缓存和强缓存了,这种网上太多了,不再赘述,这次讲另一种缓存,使用Service Worker。...-- MDN SW(以下Service Worker都简称SW)是一个比较新的API,它主要是用来解决离线情况下,使用本地缓存的资源来加载web程序。...5.4、Service Worker小结 SW这个东西呢,我觉得属于是缓存方面功能的天花板,它可以灵活的定义缓存的项目,缓存的时机等,也可以操作缓存的内容而达到一些其他的目的。...参考文献 Web 字体简介: TTF, OTF, WOFF, EOT & SVG 按需引入element-ui Vue 3, PWA & service worker Workbox get started

    1.9K41
    领券