概述合理的版本参数可避免旧缓存。本文给出 SW 命名与匹配策略。命名与匹配const ASSETS = 'assets-v3';

self.addEventListener('fetch', event => {

const url = new URL(event.request.url);

const v = url.searchParams.get('v');

if (url.pathname.startsWith('/assets/') && v) {

event.respondWith((async () => {

const cache = await caches.open(ASSETS);

const key = new Request(url.origin + url.pathname + '?v=' + v, { headers: event.request.headers });

const cached = await cache.match(key);

if (cached) return cached;

const res = await fetch(event.request);

await cache.put(key, res.clone());

return res;

})());

}

});

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部