JavaScript 高频
最编程
2024-10-17 07:48:38
...
// index.js
if (navigator.serviceWorker) {
navigator.serviceWorker
.register('sw.js')
.then(function(registration) {
console.log('service worker 注册成功')
})
.catch(function(err) {
console.log('servcie worker 注册失败')
})
}
// sw.js
// 监听 `install` 事件,回调中缓存所需文件
self.addEventListener('install', e => {
e.waitUntil(
caches.open('my-cache').then(function(cache) {
return cache.addAll(['./index.html', './index.js'])
})
)
})
// 拦截所有请求事件
// 如果缓存中已经有请求的数据就直接用缓存,否则去请求数据
self.addEventListener('fetch', e => {
e.respondWith(
caches.match(e.request).then(function(response) {
if (response) {
return response
}
console.log('fetch source')
})
)
})
上一篇: 反应器应用的网络编程
下一篇: 多线程保姆级基础教程
推荐阅读
-
JavaScript 第 16 章:错误处理和调试
-
JavaScript 高频
-
阅读周 - 你所不知道的 JavaScript | 深入编程从熟悉基本编程概念开始
-
JavaScript 的承诺 异步操作 问题解决学习
-
JavaScript 访问者模式:创建高度可扩展的对象架构
-
玩转JS函数式编程_013] 4.1 JavaScript纯函数相关概念(中4.1 JavaScript 纯函数相关概念(中):函数副作用的几种具体表现
-
什么是 TDZ?如何在 JavaScript 中避免 TDZ?
-
华为的高频撕手冲刺
-
深入分析 JavaScript 的七大常见陷阱
-
Javascript 标准内置对象 布尔值_基础介绍_布尔值 构造函数_to-String 示例方法_valueOf 示例方法