`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 });
}
})());
}
});
策略关键资源强校验,非关键弱校验;失败快速回退与告警。

发表评论 取消回复