1
我的網站有6個不同的內容元素,我想通過服務人員特定的緩存方法進行控制。ServiceWorker ifs爲特定內容定義特定緩存
- [預緩存]靜態內容(CSS,JS,字體)
- [緩存回退到互聯] CDN(從CloudFront的S3圖像)
- [網絡後備緩存] INDEX (主頁)
- [緩存回退到互聯] PAGES(domain.com/sth - > HTML)
- [通] API(AJAX調用)
- [通]其他的東西(分析,標籤管理器)
我製成內部ServiceWorker 6個IFS取事件。
我的問題是...這是一個好方法嗎?不是方法...因爲它是特定於我的網站/博客。但是,你如何看待這些ifs?過濾特定內容並使用適當的緩存是否正確?
var domain = location.host.split('.')[0]
regexStatic = new RegExp('https://' + location.host + '/build/(.*)')
regexCdn = new RegExp('https://cdn.' + domain + '(.*)')
regexIndex = new RegExp('https://' + location.host + '/')
regexApi = new RegExp('https://' + location.host + '/api/(.*)')
regexPages = new RegExp('https://' + location.host + '/(.*)')
self.addEventListener('fetch', function (event) {
// STATIC
if (regexStatic.test(event.request.url)) {
event.respondWith(
//
)
return
}
// CDN
if (regexCdn.test(event.request.url)) {
event.respondWith(
//
)
return
}
// INDEX
if (regexIndex.test(event.request.url)) {
event.respondWith(
//
)
return
}
// API
if (regexApi.test(event.request.url)) {
return
}
// PAGES
if (regexPages.test(event.request.url)) {
event.respondWith(
//
)
return
}
// OTHER
console.log('NOT INCLUDED IN CACHE: ', event.request.url)
})