PWA

简介: PWA

Warning

官方文档PWA 功能只支持最基本的离线缓存,同时还会带来内容更新不及时的问题,本笔记并没有基于此,而是基于workbox自主实现的。


workbox配置

安装 workbox-cli 包:

$ pnpm add -D workbox-cli点击复制复制失败已复制


在项目根目录下新建 workbox-config.js 文件,写入如下内容:

module.exports = {
    globDirectory: 'docs/',
    globPatterns: [
        '**/*.{md,js,ico,html,jpg,css}'
    ],
    swDest: 'docs/sw.js',
    ignoreURLParametersMatching: [
        /^utm_/,
        /^fbclid$/
    ],
    skipWaiting: true,
    clientsClaim: true
};点击复制复制失败已复制


ServiceWorker配置

新建 docs/registerServiceWorker.js 文件,写入如下内容:

register(`/sw.js`, {
    ready() {
        console.log('App is being served from cache by a service worker.\n' + 'For more details, visit https://goo.gl/AFskqB');
    },
    registered() {
        console.log('Service worker has been registered.');
    },
    cached() {
        console.log('Content has been cached for offline use.');
    },
    updatefound() {
        console.log('New content is downloading.');
    },
    updated() {
        console.log('New content is available; please refresh.');
        window.location.reload(); // serviceWorker缓存更新时刷新页面
    },
    offline() {
        console.log('No internet connection found. App is running in offline mode.');
    },
    error(error) {
        console.error('Error during service worker registration:', error);
    }
});点击复制复制失败已复制


接下来在 index.html 文件中引入:

<script src="./registerServiceWorker.js"></script>点击复制复制失败已复制


package.json配置

修改 package.json 的启动配置:

{
  "scripts": {
    "start": "node index.js && workbox generateSW workbox-config.js && docsify serve docs",
    "build": "node index.js && workbox generateSW workbox-config.js"
  }
}点击复制复制失败已复制


.gitignore配置

由于 workbox 会生成 ServiceWorker 的一些文件,所以需要将自动生成的文件写入到 .gitignore 配置中

# workbox 自动生成文件
docs/sw.js
docs/sw.js.map
docs/workbox-*
目录
相关文章
|
1月前
|
Rust 前端开发 开发者
探索前端技术发展趋势:从WebAssembly到PWA
【2月更文挑战第10天】随着互联网的快速发展,前端技术也在不断演进。本文将从WebAssembly和渐进式Web应用(PWA)两个方面探讨前端技术的发展趋势,分析它们对于前端开发的影响和未来发展潜力。
|
7月前
|
JSON 缓存 搜索推荐
Progressive Web Apps(PWA):未来网络体验的崭新纪元
在当今数字化的世界中,Progressive Web Apps(PWA)已经成为了Web开发的一项重要趋势。PWA是一种结合了Web和原生应用程序优点的新型Web应用,它们提供了高性能、离线访问和优秀的用户体验。本博客将深入探讨PWA的概念、特点以及为什么它们对未来网络体验如此重要。
67 0
|
7月前
|
供应链 JavaScript 前端开发
业界三款主流的 PWA Storefront 概述
业界三款主流的 PWA Storefront 概述
140 0
|
1月前
|
编解码 前端开发 JavaScript
前端发展趋势:WebAssembly、PWA 和响应式设计
前端发展趋势:WebAssembly、PWA 和响应式设计
|
7月前
|
传感器 Web App开发 缓存
PWA 技术诞生的前世今生漫谈
PWA 技术诞生的前世今生漫谈
58 0
|
3月前
|
Web App开发 JavaScript 前端开发
渐进式网页应用(PWA)
【1月更文挑战第1天】
|
6月前
|
JSON 数据格式
关于 PWA 应用的可安装性
关于 PWA 应用的可安装性
30 0
|
7月前
|
存储 缓存 JSON
PWA 应用和原生应用的一些区别
PWA 应用和原生应用的一些区别
44 0
|
8月前
|
JSON 缓存 前端开发
PWA(渐进式Web应用)的开发与部署
PWA(渐进式Web应用)的开发与部署
306 0
|
9月前
|
缓存 前端开发 API
前端的未来在哪里之PWA
PWA(Progressive Web App)作为一种新的前端开发技术,已经成为了前端开发的新趋势。它可以让应用程序在没有网络连接的情况下也可以正常运行,提高了用户的体验。
116 0