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

Posted JavaScript全栈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你的web应用支持离线访问和策略缓存吗?相关的知识,希望对你有一定的参考价值。

沉醉在生命的优美。看着星,想象你自己跟它们在奔驰。——哲学家,马克·奥勒留

性能始终在时间与空间上相互权衡取舍,计算机系统的优化需要借助各种缓存策略,从CPU到内存,从接口到外设。如果有一天,硬件成本和实现难度不再是阻碍,也许便没有了“优化”这个字眼。

当下,前端面临的优化与挑战更多,复杂的终端环境,各种不同的浏览器内核,尺寸不一的浏览设备,兼容要做。复杂不稳定的网络环境,越来越多的资源,优化要做。对于缓存,我们并不陌生,但是我们想有主观意识的缓存,我想缓存什么,缓存多久,缓存和请求资源的策略是什么都有自己来定,service worker 能帮我们做到。

使用 service worker 前,需要创建一份注册文件,不妨在项目下创建一个名为 sw.js 的文件

console.log('Hello, I am sw.js file')

然后在应用中通过这个文件进行注册,通过以下代码就能完成应用中 service worker 的注册,后面关于 service worker 相关的处理,在 sw.js 文件中进行。

<script> // 检查当前浏览器是否支持service workers if ('serviceWorker' in navigator) { // 确保资源加载完成,再注册service worker window.addEventListener('load', () => { navigator.serviceWorker.register('/sw.js'); }); }</script>

刷新页面,就能看到控制台打印了这句话,表示 service worker 注册成功

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

打开控制台 Application ,一切在掌控之中, service worker 注册成功

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

到这里完成了,完成了 service worker 的注册,关于其相关的配置和处理,我们一起去 sw.js 文件中定义吧!

Google推出的、标准统一api操作的、基于 service worker 的策略缓存库,它有以下几点让人称赞的特点

1.Precaching2.Runtime caching3.Strategies4.Request routing5.Background sync6.Helpful debuggin7.Greater flexibility and feature set than sw-precache and sw-toolbox

我想起了一句话,简单的概念复杂化,通俗的概念神秘化,这是为了展示自己的不凡,

以上是关于你的web应用支持离线访问和策略缓存吗?的主要内容,如果未能解决你的问题,请参考以下文章

页面缓存离线存储技术localforage(介绍篇)

PWA常见的缓存策略

如何缓存网站和 HTML5 离线工作

谷歌地图离线支持

基于Alluxio内存文件系统的缓存策略

移动网络应用程序和离线访问音频文件