增量静态再生中的重新验证过程如何工作?

2023-12-07

我有一个关于增量静态再生的问题。据我所知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(使用前将#替换为@)

增量静态再生中的重新验证过程如何工作? 的相关文章

随机推荐

  • IEnumerable 与 IQueryable

    我有一个疑问 topics OrderBy x gt x Replies Any x Replies OrderBy y gt y PostedDate Last PostedDate x PostedDate 它按最后回复对主题集合进行排
  • 为什么我的 SFINAE 表达式不再适用于 GCC 8.2?

    我最近将 GCC 升级到 8 2 我的大部分 SFINAE 表达式都停止工作了 下面的内容有些简化 但说明了问题 include
  • 使用远程验证 asp.net MVC

    我喜欢尝试使用我在此链接上发现的远程验证 http www youtube com watch v Ll8VtDRj8L4 我已按照说明进行操作 并且有效 但问题是 当我尝试从引用表添加数据时 验证不起作用 型号类别 public part
  • 调用未定义的方法 Illuminate\Database\Query\Builder::save()?

    我在尝试保存模型后收到此错误 这是我收到的错误 调用未定义的方法 Illuminate Database Query Builder save 这是我的代码 public function getActivate code user Use
  • Flutter :- HTTP 文件发布示例:图像

    Future userPasswordUpdate async String passwordU password text String confirmPasswordU confirmPassword text String oldPa
  • Groovy:为具有属性集合的对象集合动态创建 XML

    我有一组具有属性的字段 每个属性都是单个值或对象的集合 可为 null 一个或多个 我需要为此创建一个类似 xml 的树 到目前为止 我发现的所有示例要么是静态的 要么是将映射转换为 xml 在循环中向 xml 添加节点的正确方法是什么 您
  • 根据第一列值合并两个索引数组的索引数组

    我有两个这样的数组 array1 10 Some Name 11 Some Name 13 Some Name array2 13 Viewed 如何在不循环的情况下合并这两个数组 有没有可用的 php 功能 我需要这样的输出 10 Som
  • 无法解析的外部符号,但 dumpbin 说没问题

    我下载了Crypto 5 62 并使用默认项目设置构建它 在我的项目中我设置了路径cryptopp lib并在 附加依赖项 中定义了它的名称 Crypto 和我的项目 VS 2008 在构建我的项目期间我得到 main obj error
  • Django 1.7 ImageField 表单验证

    我正在使用 Django 1 7 和 Python 3 4 编写单元测试 下面的表格可以很好地验证file data元素被注释掉 随着file data包括它不验证并且测试失败 from django core files uploaded
  • AppEngine 中任务队列的默认值是什么?

    假设我在我的队列中创建了一个新队列queue yaml文件为 queue name my queue 指定所有参数的等效队列是什么 这是我可以从docs so far queue name my queue mode push bucket
  • 计算次太阳点

    我刚刚开始使用PyEphem 我当前的任务是 给定日期和时间 计算地球上的亚太阳点latitude longitude价值观 我会深入研究PyEphem来解决这个问题 但如果有人已经这样做了 我会很感激示例代码 我去寻找与OP相同的答案 许
  • 如何在 pyspark 中启动 SparkSession

    我想更改 Spark 会话的默认内存 执行器和核心设置 Jupyter 中 HDInsight 集群上的 pyspark 笔记本中的第一个代码如下所示 from pyspark sql import SparkSession spark S
  • 将 glassfish javax.persistence 添加到 gradle 项目

    我收到这个错误 梯度构建 ant javac Hello java 2 错误 包 javax persistence 不存在 Hello java 2 导入 javax persistence 我应该添加到 gradle build 中以包
  • 在PowerShell中调用动态变量

    我正在尝试创建一个新变量 该变量将使用具有动态名称的其他变量作为其值 这就是我想做的 我有一个包含两个值的 System Array Years 2015 2016 另一个变量 Transactions有各种交易的清单 我尝试按以下方式使用
  • 黄瓜:自动创建步骤文件?

    当我运行黄瓜时它显示 我应该定义的可能步骤 RSpec 书中的一个示例 1 scenario 1 undefined 4 steps 4 undefined 0m0 001s You can implement step definitio
  • selenium.common.exceptions.SessionNotCreatedException:消息:会话未创建:此版本的 ChromeDriver 仅支持 Chrome 版本 114

    我收到以下错误 selenium common exceptions SessionNotCreatedException 消息 会话未创建 此版本的 ChromeDriver 仅支持 Chrome 版本 114 当前浏览器版本为 116
  • 在 Spring 中使用 setAllowedFields() 方法

    我正在使用 Spring 3 2 0 我已经注册了一些自定义属性编辑器以满足一些基本需求 如下所示 import editors DateTimeEditor import editors StrictNumberFormatEditor
  • 实体框架 -Where 子句

    假设我有一个名为 User 的表 当我使用实体框架获取记录时 我这样做 var db new Context var users db Users 它返回我表中的所有用户 好的 如果我这样做 var fooUsers db Users Wh
  • OpenERP中调用另一个表单的方法返回值

    目前 您可以将OpenERP的返回值设置为以下 以获取要关闭的当前表单 return type ir actions act window close 是否有一个返回值可以打开另一个表单 例如 在 产品 表单中 按钮可以调用销售表单或向导表
  • 增量静态再生中的重新验证过程如何工作?

    我有一个关于增量静态再生的问题 据我所知revalidate值范围内getStaticProps 函数告诉 Next js 应该重建页面的时间 我的问题是 在设定的时间后 每个用户 请求都会发生这种情况 还是从第一个用户 请求点击页面开始集