加载中...

stale-while-revalidate 是 RFC 5861 定义的 Cache-Control 扩展指令:资源过期后的指定时间窗口内,缓存可以立即返回这份「过期但可用」的副本,同时在后台异步向源站重新验证并更新缓存,用户完全感受不到回源延迟。
例如 Cache-Control: max-age=600, stale-while-revalidate=60 表示:前 600 秒直接命中;第 600 到 660 秒之间的请求先拿旧内容、触发后台刷新;超过窗口则必须同步回源。同一 RFC 还定义了 stale-if-error,允许源站出错时继续用过期副本兜底。
CDN(Cloudflare、Fastly 等)与主流浏览器均支持该指令;Varnish 的 grace 模式、Nginx 的 proxy_cache_use_stale updating 是同一思想的服务器端实现。
该模式已成为一种通用数据获取范式:前端库 SWR(由 Vercel 开发)即以此命名——先渲染缓存数据再后台刷新,React Query 等库亦采用相同策略。

登录 后参与讨论
暂无讨论,来发表第一条评论吧