1. mian.js
// 配置 server worker START
// console.log('serviceWorker' in navigator, 'serverWorker')
// if ('serviceWorker' in navigator) {
// navigator.serviceWorker.register('/service-worker.js').then(function (registration) {
// console.log('Registration successful, scope is:', registration.scope)
// }).catch(function (error) {
// console.log('Service Worker registration failed, error:', error)
// })
// }
// navigator.serviceWorker.register('/service-worker.js', {
// scope: '/app/'
// })
// 配置 server worker END
2. service-worker.js
'use strict'
const version = 'xinwen_v1.4'
const offlineResources = [
'/',
'./static/images/default.png',
'./static/json/offline.json'
]
// 过滤需要加入缓存的api
const addApiCache = [
/https?:\/\/www.easy-mock.com\//
]
// 需要缓存的请求
const shouldAlwaysFetch = (request) => {
return addApiCache.some(regex => request.url.match(regex))
}
/**
* common function
*/
function cacheKey() {
return [version, ...arguments].join(':')
}
function log() {
console.log('SW:', ...arguments)
}
// 缓存 html 页面
function shouldFetchAndCache(