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-*
目录
相关文章
|
JSON 缓存 搜索推荐
Progressive Web Apps(PWA):未来网络体验的崭新纪元
在当今数字化的世界中,Progressive Web Apps(PWA)已经成为了Web开发的一项重要趋势。PWA是一种结合了Web和原生应用程序优点的新型Web应用,它们提供了高性能、离线访问和优秀的用户体验。本博客将深入探讨PWA的概念、特点以及为什么它们对未来网络体验如此重要。
227 0
|
3月前
|
缓存 前端开发 JavaScript
简述 PWA
PWA(Progressive Web App)是一种利用现代网络技术构建的渐进式增强应用,能够提供类似原生应用的用户体验。它具有快速加载、离线访问、推送通知等功能,支持跨平台和设备使用。
|
3月前
|
缓存 搜索推荐 定位技术
PWA 适用于哪些类型的应用
PWA(渐进式网页应用)适用于多种类型的应用,包括新闻、天气、电商、社交、娱乐和工具类应用,能够提供接近原生应用的体验,支持离线访问和快速加载。
|
4月前
|
缓存 API UED
通过渐进式Web应用(PWA)提升用户体验
【10月更文挑战第15天】渐进式Web应用(PWA)结合了传统Web应用和移动应用的优点,提供更快、更可靠和更吸引人的用户体验。本文介绍PWA的核心特性、优势及构建方法,包括服务工作线程、响应式设计和现代Web API的应用,帮助开发者提升用户体验。
|
5月前
|
缓存 编解码 前端开发
探索PWA(Progressive Web Apps)的无限可能
探索PWA(Progressive Web Apps)的无限可能
83 0
|
9月前
|
编解码 前端开发 JavaScript
前端发展趋势:WebAssembly、PWA 和响应式设计
前端发展趋势:WebAssembly、PWA 和响应式设计
|
9月前
|
Web App开发 JavaScript 前端开发
渐进式网页应用(PWA)
【1月更文挑战第1天】
|
JSON 缓存 前端开发
PWA(渐进式Web应用)的开发与部署
PWA(渐进式Web应用)的开发与部署
512 0
|
缓存 前端开发 API
前端的未来在哪里之PWA
PWA(Progressive Web App)作为一种新的前端开发技术,已经成为了前端开发的新趋势。它可以让应用程序在没有网络连接的情况下也可以正常运行,提高了用户的体验。
178 0
|
缓存 前端开发 UED
前端之PWA的未来在哪里?
PWA(Progressive Web Apps)是一种基于Web技术创建的应用程序,它能够提供类似于原生应用程序的用户体验。随着移动设备的普及和Web技术的发展,PWA已经成为前端开发的一个重要方向。那么,PWA的未来在哪里呢?
258 0