`title: Service Worker 运行时资源校验与回退策略``categories: Web 开发/前端/数据管理``keywords: Service Worker,完整性,校验,回退,Cache Storage``description: 在 Service Worker 中对关键资源进行运行时校验(如 SHA-256),失败时回退到缓存或安全占位,保障稳定性。`校验示例self.addEventListener('fetch', (event) => {

const req = event.request;

if (req.destination === 'script' || req.destination === 'style') {

event.respondWith((async () => {

try {

const res = await fetch(req);

const buf = await res.clone().arrayBuffer();

const hash = await crypto.subtle.digest('SHA-256', buf);

// 可与预期哈希比对(来自清单或响应头)

return res;

} catch {

const cached = await caches.match(req);

return cached || new Response('', { status: 503 });

}

})());

}

});

策略关键资源强校验,非关键弱校验;失败快速回退与告警。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部