跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

通过 Stale-While-Revalidate 策略实现极致的渐进式网页加载

SWR是彻底取消等待的缓存策略:首次渲染用缓存,后台静默更新;需服务端设置Cache-Control头,仅Chrome≥75/Firefox≥115原生支持;Service Worker手动实现更通用,框架层SWR库提供staleTime等精细控制。 Stale-While-Revalidate(SWR)不是“更快地等网络”,而是彻底取消等待——页面首次渲染用缓存,用户开始滚动时新数据已在后台就位。它把“加载”这个概念从用户感知中移除,是渐进式网页加载(PWA)真正落地的关键一环。 服务端必须正确声明 SWR 响应头 HTML 文件本身无法启用 SWR, meta 标签完全无效 。必须由后端在 HTTP 响应头中明确设置: Cache-Control: max-age=30, stale-while-revalidate=300 —— 表示资源新鲜期 30 秒,过期后 5 分钟内仍可直接返回缓存并后台验证 仅对
destination === 'document'
(如首页导航)或
'json'
(如 API 请求)生效;