什么是Stale while revalidate?
WebDev

什么是Stale while revalidate?

stale-while-revalidate 是一种优化HTTP缓存策略的机制,旨在平衡资源的新鲜度和加载速度,提升用户体验。其核心原理如下:

工作机制

  1. 缓存有效期(max-age)内:直接使用本地缓存,无需验证。
  1. 缓存过期后的时间窗口(stale-while-revalidate)
      • 立即返回旧数据:用户无感知延迟,快速获取内容。
      • 后台异步验证:同时向服务器发起请求,检查资源是否更新。
      • 更新缓存:若服务器返回新数据,替换旧缓存,供下次使用。
  1. 超出时间窗口:必须等待服务器响应,用户可能感受到延迟。

Next.js中的应用

服务端渲染SSR,设定好页面的revalidate时间后,比如说60s
那么在这60内,不管用户怎么刷新都不会有新的内容,直到超过60s
此时用户刷新网页,服务器还是会返回旧的缓存数据给你,但是会触发服务器拿新的数据来渲染网页
之后用户再刷新网页,就是新的内容了