离线应用
如何构建web离线应用
- Service Worker和Cache API来实现离线缓存和离线访问功能
- 要使用Cache API实现离线缓存和访问,您需要在Service Worker中编写缓存逻辑
- 在Service Worker脚本中,使用
caches.open()方法创建一个新的缓存。 - 在
caches.open()方法的回调函数中,使用cache.addAll()或cache.put()方法将您的静态资源添加到缓存中。cache.addAll()方法接受一个URL数组,将这些URL指定的文件添加到缓存中。cache.put()方法接受一个Request对象和一个Response对象,将Response对象添加到缓存中 - 在Service Worker脚本中,使用
fetch事件拦截网络请求,并在缓存中查找相应的资源。如果缓存中存在匹配的资源,则返回缓存的响应。如果缓存中不存在匹配的资源,则继续从网络请求资源。 - 配置Service Worker的生命周期,使其在更新时自动清除旧的缓存。在Service Worker更新时,您可以使用
caches.delete()方法从缓存中删除旧的缓存。
PWA
让网站具备接近原生 App的体验,PWA = 可以被安装、可以独立窗口打开、可以缓存资源、可支持离线使用的网站
-
用户不需要输入网址,直接点击桌面应用的图标,就能打开,类似APP的体验
-
PWA全称Progressive Web App,即渐进式WEB应用
- 是提升WebApp的体验的一种新方法,能给用户原生应用的体验
-
一个 PWA 应用首先是一个网页, 可以通过 Web 技术编写出一个网页应用. 随后添加上 App Manifest 和 Service Worker 来实现 PWA 的安装和离线等功能
-
可被浏览器主动发现
App Manifest 目的 将web应用程序安装到设备屏幕
PWA 的主要 技术点
- 离线可用 ( Service Worker )
- 主屏图标 ( App Manifest )
- 通知 ( Push API & Notification API )
离线访问
- PWA 可以用 Service Worker 缓存静态资源
- 用户断网后,仍然可能打开页面