我有一个关于增量静态再生的问题。据我所知revalidate
值范围内getStaticProps()
函数告诉 Next.js 应该重建页面的时间。
我的问题是,在设定的时间后,每个用户/请求都会发生这种情况,还是从第一个用户/请求点击页面开始集中发生?
例如:
重新验证值getStaticProps()
功能:60秒
User A点击页面并接收缓存版本。 60 秒后,Next.js 为他重建页面并提供新内容。
User B用户 A 不久后访问页面,收到缓存版本,60 秒后他还收到更新版本。
我担心的是,每个单独的请求都会启动它own重建间隔为 60 秒。
我很确定情况并非如此,但由于 Next.js 对我来说是新的,我想在把事情搞砸之前弄清楚这一点。
如果有人能自愿快速回复,我将非常感激。
增量静态生成受到 stale-while-revalidate 的启发,因此没有间隔。
假设我们的验证值为 60 秒:
- 第一个用户将在 100000000000 访问页面(随机时间以毫秒为单位)
- next.js 将缓存过期日期为 100000060000 的页面
- 其他用户来自 100000040000,缓存有效,不执行任何操作(提供缓存页面)
- 另一个访问者来自 100000070000,缓存已过期,next.js 将在后台重新验证页面,但用户仍然看到旧页面。
- 最后一位访问者来自 100000080000 并将使用新数据查看页面
- 等等...
60 秒后 NextJS 为他重建页面并提供服务
新鲜的内容。
所以这个概念是错误的,next.js不会在n秒后重建页面,
但对于每个请求,next.js 都会检查自上次请求以来经过的时间是否 > 缓存的到期日期。如果您的重新验证值为 1 秒,但下一个访问者在 1 年后到来,则下一个将在一年后重新生成页面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)