首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Workbox-webpack-plugin 使用指南与实践

new GenerateSW({swDest: 'custom-service-worker.js',});exclude: 用于排除不需要缓存的文件,常用于忽略 .map 文件等。...缓存策略详解Workbox 支持多种缓存策略,每种策略适用于不同的资源类型和场景。CacheFirst:优先使用缓存,只有在缓存没有找到资源时才会从网络获取。...{html,js,css}'],});6.2 调试与监控开发过程可以通过 Workbox 提供的调试工具监控缓存的情况。...完整项目示例以下是一个完整的 Webpack 项目示例,结合 GenerateSW 模式配置静态资源预缓存运行时缓存:const { GenerateSW } = require('workbox-webpack-plugin...通过它,我们可以轻松实现静态资源的预缓存运行时缓存、自动缓存更新等功能,从而提升应用的离线能力和加载性能。

14210

Workbox5+Webpack4构建离线应用

离线缓存优化 将应用的静态资源缓存是目前最主流的性能优化方法,甚至能让应用秒开!...详细介绍请查阅官方文档 配置 Workbox可以修改缓存名称,可以用setCacheNameDetails设置预缓存运行时缓存的名称,还可以通过workbox.core.cacheNames.precache...: '383676' }, {url: '/styles/app.0c9a31.css', revision: null}, {url: '/scripts/app.0d5770.js...: NetworkFirst:网络优先 CacheFirst:缓存优先 NetworkOnly:仅使用正常的网络请求 CacheOnly:仅使用缓存的资源 StaleWhileRevalidate:从缓存读取资源的同时发送网络请求更新本地缓存...只简单的应用运行时缓存功能 不适用: 需要使用service worker 其他功能的场景,push等 需要在service worker中导入其他脚本或添加其他逻辑 具体的配置文件可查阅官方文档

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

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

    但是上述的压缩场景对于SPA项目来说不太可能实现,因为字蛛是通过扫描HTML来获取页面需要哪些字的,SPA项目的HTML没有经过加载空空也,啥也没有;而且对于含有输入场景的网页,由于用户的输入有不确定性...5.2、项目引入(vue-cli项目例子) 下面使用vue-cli项目进行示范,如何在项目中接入SW和workbox: // vue.config.js // 首先需要安装 serviceworker-webpack-plugin...当缓存没有数据的时候,就会把服务器的请求返回给客户端使用,并且更新缓存。...也就是说这种策略,只要缓存中有对应数据,就不会发起网络请求去更新缓存的内容,这适合一些不常变化的资源缓存。比如图片,字体资源。...使用方法就是把 workbox-routing 那一节例子的 CacheHandler 占位,改成对应策略的实例即可。

    1.6K41

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

    开始使用Workbox Workbox 定义了标准统一API,我们来看如何借助它提供的API逐步优化项目 路由请求定义缓存Workbox ,最核心的概念要数基于路由的策略缓存了,这里抓住两个关键词...networkFirst 网络优先的策略 cacheFirst 直接从 Cache 缓存取得结果,如果 Cache 缓存没有结果,那就会发起网络请求,拿到网络请求结果并将结果更新至 Cache 缓存...workbox.routing.registerRoute( ({url, event}) => { return { name: 'workbox'...}; }, ({url, event, params}) => { // 返回的结果是:A guide on workbox return...{html,js,css}'], }) ] // ... }); 使用 workbox 提供的 Webpack 插件必须在 app/sw.js 包含以下代码才能完成预缓存内容列表注入工作

    99320

    为 vue 项目添加 PWA 支持

    安装 PWA 插件 如果你已经在使用@vue/cli,那么可以直接在可视化界面安装 PWA 插件 否则,可以通过vue add @vue/pwa命令来安装 该插件会使用谷歌的 PWA 框架 Workbox...)文件添加到 precache manifest ,或从中排除,支持使用正则表达式 自动跳过 Service Worker 的等待阶段 添加离线 Google Analytics 支持 运行时缓存runtimeCaching...,Workbox 的强大所在,阅读这些内容会使你更好地了解如何配置以及具体能做什么: Workbox Routing Workbox Strategies Workbox Cache Expiration...(也并没有放置在其他 js ),我猜测这可能是因为加入代码的这一特性是 Workbox 4 才加入的,而插件生成的 SW 引用的是 Workbox 3 的缘故…… 对于这个问题有两种可能的解决方法:...的importWorkboxFrom为disable,然后在importScripts中指定本地workbox-sw.js的路径 接着在registerServiceWorker.js我们可以如下所示在

    3.7K00

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

    Workbox 的主要特性之一是它的路由和缓存策略模块。 路由和缓存策略 Workbox 允许使用不同的缓存策略来管理 HTTP 请求的缓存。...采用缓存优先的策略来缓存图像,将缓存的图像存储在名为 images 的缓存,30 天过期,并且一次只允许 50 个。...预缓存 除了在发出请求时进行缓存运行时缓存)之外,Workbox 还支持预缓存,即在安装 Service Worker 时缓存资源。...通过 Workbox 路由和预缓存,你可以在几行代码设置这个模式。...JavaScript 对内存的占用受代码的影响,如果在运行时缓存和计算大量的数据、处理巨量字符串等耗费空间的行为,那么内存就会极速飙升,极端情况下会导致承载网页的应用闪退。

    2.7K121

    hexo博客添加到桌面应用程序

    比如 PWA 启动画面上状态栏、内容页状态栏、地址栏的颜色,会被 theme_color 所影响。 background_color: {Color} css色值 可以指定启动画面的背景颜色。...display: {string} 显示类型 fullscreen 应用的显示界面将占满整个屏幕 standalone 浏览器相关UI(导航栏、工具栏等)将会被隐藏 minimal-ui 显示形式与...应遵循如下规则: 如果没有在 manifest 设置 scope,则默认的作用域为 manifest.json 所在文件夹; scope 可以设置为 ../ 或者更高层级的路径来扩大PWA的作用域;...start_url 必须在作用域范围内; 如果 start_url 为相对地址,其根路径受 scope 所影响; 如果 start_url 为绝对地址(以 / 开头),则该地址将永远以 / 作为根地址...如你想要添加所有的格式,按照以上格式复制即可 将上述图片放到对应的目录下,并修改 _config.yml 和 manifest.json 与之对应 推荐图片大小转换网站:iloveimg 最后输入以下内容即可 # 清理缓存

    73430

    前端性能和加载体验优化实践

    如何使用 WorkboxWorkbox 是由许多 NPM 模块组成的。首先要从 NPM 安装它,然后导入项目 Service Worker 所需的模块。...Workbox 的主要特性之一是它的路由和缓存策略模块。 路由和缓存策略 Workbox 允许使用不同的缓存策略来管理 HTTP 请求的缓存。...(用于新的 HTML 页面),当它状态码为 200 时,该策略将缓存的页面存储在一个名为 pages 的缓存。...采用缓存优先的策略来缓存图像,将缓存的图像存储在名为 images 的缓存,30 天过期,并且一次只允许 50 个。 3. ...JavaScript 对内存的占用受代码的影响,如果在运行时缓存和计算大量的数据、处理巨量字符串等耗费空间的行为,那么内存就会极速飙升,极端情况下会导致承载网页的应用闪退。

    1.5K20

    Butterfly主题的PWA实现方案

    装配了PWA以后,用户可以将网站作为WEB APP安装到自己的设备上,以原生应用般的方式浏览博客,同时借助PWA的缓存机制,能够更快速的浏览。本文讨论的是使用两种方案实现PWA。...其实还有个离线博客,但是视方案不同会有很多BUG,而且离线博客意义何在啊! 图标设计 在使用PWA之前,我们最好先行设计一个符合网站主题的图标。...使用hexo-offline-popup以后,如果还开启了pjax,可能遇到页面URL带着长长的后缀。形似index.html?...安装必要插件 既然要使用gulp配合workbox实现PWA,自然少不了安装这两个插件。...butterfly_v3.6.0取消了缓存配置,转为完全默认,需要将{cache:theme.fragment_cache}改为{cache: true}: 将之前生成的图标包移入相应的目录,例如我是/

    1.6K20

    ServiceWorker工作机制与生命周期:资源缓存与协作通信处理

    manifest 缓存 已经被废弃,因为他的设计有些不合理的地方,他在缓存静态文件的同时,也会默认缓存html文件。这导致页面的更新只能通过manifest文件的版本号来决定。...相对于驱动应用的主JavaScript线程,它运行在其他线程,所以不会造成阻塞。它设计为完全异步,同步API(XHR和localStorage)不能在service worker中使用。...如果注册成功,service worker就会被下载到客户端并尝试安装或激活(见下文),这将作用于整个域内用户可访问的URL,或者其特定子集。...可以像如下方式使用 Network First 策略: cacheFirst 这个策略的意思就是当匹配到请求之后直接从 Cache 缓存取得结果,如果 Cache 缓存没有结果,那就会发起网络请求,...workbox原理 通过Proxy按需依赖 熟悉了workbox后会得知,它是有很多个子模块的,各个子模块再通过用到的时候按需importScript到线程

    1.5K20

    Hexo添加PWA支持

    display: {string} 显示类型 fullscreen 应用的显示界面将占满整个屏幕 standalone 浏览器相关UI(导航栏、工具栏等)将会被隐藏 minimal-ui 显示形式与...start_url 必须在作用域范围内; 如果 start_url 为相对地址,其根路径受 scope 所影响; 如果 start_url 为绝对地址(以 / 开头),则该地址将永远以 / 作为根地址...; start_url: {string} 应用启动地址 icons: {Array.}...如果需要填写多个尺寸,则使用空格进行间隔,”48x48 96x96 128x128” type {string} 图标的 mime 类型,非必填项,该字段可让浏览器快速忽略掉不支持的图标类型 sw.js...'); ​ if (workbox) { workbox.setConfig({ modulePathPrefix: 'https://g.alicdn.com/kg/workbox/3.3.0

    1.2K10

    WorkBox 之底层逻辑Service Worker

    前言 在前几天师夷长技以制夷:跟着PS学前端技术文件,我们提到了WorkBox,然后自己也对这块很感兴趣,所以就利用业余时间进行相关资源的查询学习和实践。...预缓存运行时缓存 Service worker与Cache实例之间的交互涉及两个不同的缓存概念: 「预缓存」(Precaching caching) 「运行时缓存」(Runtime caching)...运行时缓存是指在运行时从网络请求资源时应用缓存策略。这种类型的缓存非常有用,因为它保证了用户已经访问过的页面和资源的离线访问。...模拟存储配额 在拥有大量大型静态资产(高分辨率图像)的网站,可能会触及存储配额。当这种情况发生时,浏览器将从缓存驱逐它认为过时或值得牺牲以腾出空间以容纳新资产的项目。...处理存储配额应该是Service Worker开发的一部分,而 Workbox 使这个过程比自行管理更简单。不管是否使用 Workbox,模拟自定义存储配额以测试缓存管理逻辑可能是一个不错的主意。

    39220
    领券