2023-11-01 13:16:16
在 JavaScript 中清理缓存可以通过多种方式实现,具体取决于需要清除的缓存类型(如 Service Worker 缓存、HTTP 缓存或特定资源缓存)。以下是详细的方法和注意事项:
1. 清除 Service Worker 缓存Service Worker 缓存需要通过浏览器开发者工具或代码手动清理:
开发者工具操作:
打开目标网站。
按 F12 打开开发者工具,切换到 Application(应用程序)选项卡。
在左侧菜单中选择 Cache Storage 或 Service Workers。
右键点击目标缓存,选择 Delete 或点击工具栏的清除按钮。
代码清理:
// 清除所有 Service Worker 缓存if ('caches' in window) { caches.keys().then(cacheNames => { cacheNames.forEach(cacheName => { caches.delete(cacheName); }); });}HTTP 缓存通过请求头控制,可在发送请求时动态设置:
关键参数:
cache: 'no-store':完全绕过缓存。
Cache-Control: no-cache:要求服务器返回最新资源(可能返回 304 未修改)。
Pragma: no-cache:旧版 HTTP 的兼容写法。
使用 Cache API 删除指定资源:
caches.open('my-cache-name').then(cache => { cache.delete('/path/to/resource').then(success => { console.log(success ? '删除成功' : '资源不存在'); });});通过修改请求 URL 或时间戳参数,避免使用缓存:
// 添加时间戳参数const url = `Service Worker 缓存仅影响当前站点的 PWA 缓存。
HTTP 缓存控制仅对后续请求生效,已缓存的资源需等待过期或手动清理。
根据实际需求选择合适的方法,并评估对性能的影响。