You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过编程方式禁用特定资源的缓存?

针对特定资源禁用Fetch API缓存的方法

当然有办法实现!既然你已经在Chrome DevTools里配置了全局缓存设置,但需要针对单个特定资源禁用缓存,Fetch API提供了两种直接且灵活的方案,下面给你详细说明:

1. 使用Fetch的cache配置选项

Fetch API本身自带了cache参数,你可以通过设置不同取值精准控制缓存行为,最常用的两个选项是:

  • 'no-store':浏览器不会存储该请求的任何响应数据,每次请求都会直接从服务器获取最新资源,完全绕过缓存,是彻底禁用缓存的首选。
  • 'reload':强制从服务器获取资源,但获取到的响应会被存入缓存(适合后续可能需要复用缓存,但当前请求必须拿最新内容的场景)。

示例代码:

// 完全禁用该资源的缓存,每次都从服务器拉取最新内容
fetch('/api/your-specific-data', {
  cache: 'no-store'
})
.then(response => response.json())
.catch(err => console.error('请求失败:', err));

2. 设置Cache-Control请求头

你也可以通过自定义HTTP请求头Cache-Control来告诉浏览器不要使用缓存,常用的取值包括:

  • no-store:和上面的cache选项效果一致,彻底禁止浏览器存储和使用该资源的缓存;
  • max-age=0:强制浏览器先向服务器验证缓存是否新鲜,若缓存过期则拉取新资源。

示例代码:

fetch('/assets/your-specific-resource.js', {
  headers: {
    'Cache-Control': 'no-store'
  }
})
.then(response => response.text())
.catch(err => console.error('请求失败:', err));

两者的小区别

  • cache选项是Fetch API的标准配置,语义更清晰,直接对应缓存策略;
  • Cache-Control请求头是传统的HTTP缓存控制方式,兼容性更广(包括一些较旧的浏览器)。

这两种方法都能独立于DevTools的全局设置,只针对当前请求生效,完全满足你针对特定资源禁用缓存的需求。

内容的提问来源于stack exchange,提问作者user7898461

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:32:44