SWR " stale-while-revalidate " 立即使用缓存数据 + 后台异步刷新

在软件开发中,SWR 是 " stale-while-revalidate " 的首字母缩写,这是一种在网络应用(尤其是Web应用)中用于数据获取和缓存的策略。

这个策略最早由 Next.js 团队提出并在其数据获取库 next/swr 中实现了这个思想。

SWR 的工作原理如下:

  1. 立即使用缓存数据
    当页面首次加载或数据需要更新时,SWR 会优先尝试从缓存中获取数据。如果有缓存数据,即便它可能不是最新数据(stale),也会立即呈现给用户,从而提供更快的响应速度和更好的用户体验。

  2. 后台异步刷新
    同时,SWR 会发起一个后台请求去服务器获取最新的数据。一旦服务器返回了新数据,SWR 将更新缓存并重新渲染 UI。

通过这种方式,SWR 既保证了用户能够快速看到页面内容(即使数据并非最新),又能确保最终用户看到的是最新数据,从而在延迟加载和数据新鲜度之间取得平衡。

这种策略非常适合实时性要求不高但又需要保持数据尽可能更新的应用场景。

posted @ 2024-02-27 20:17  龙陌  阅读(487)  评论(0)    收藏  举报