什么是 ISR?

页面生成于: 23:06:55
← 返回博客列表

什么是 ISR?

增量静态再生(Incremental Static Regeneration,ISR)是 Next.js 中的一项强大特性,它结合了静态生成和服务端渲染的优点。

ISR 的核心概念

ISR 允许您在构建时生成静态页面,同时还能在运行时按需重新生成这些页面。这意味着您可以享受静态站点的性能优势,同时保持内容的动态更新能力。

工作原理

当用户访问一个使用 ISR 的页面时,会发生以下过程:

  1. 首先返回缓存的静态版本(如果存在)
  2. 在后台检查内容是否需要更新
  3. 如果内容已过期,则重新生成新版本
  4. 后续访问将获得更新后的版本

ISR 的优势

  • 性能优异:大部分请求都能获得静态页面的快速响应
  • 内容新鲜:可以定期更新内容而无需重新构建整个站点
  • 可扩展性:适合处理大量页面的网站
  • SEO 友好:搜索引擎可以轻松索引静态内容

适用场景

ISR 特别适合以下场景:

  • 电商产品页面
  • 博客文章
  • 新闻网站
  • 内容管理系统

实现示例

在 Next.js 中使用 ISR 非常简单,只需在 getStaticProps 中添加 revalidate 属性:

export async function getStaticProps() {
  const data = await fetchData();

  return {
    props: { data },
    // 每60秒重新验证一次
    revalidate: 60
  };
}

提示:选择合适的 revalidate 值很重要,它应该根据您的内容更新频率来决定。