【问题标题】:Using revalidate : 1 in StaticProps (ISR) vs ServerSideProps (SSR) in Next JS使用 revalidate : 1 in StaticProps (ISR) vs ServerSideProps (SSR) in Next JS
【发布时间】:2021-02-26 01:23:45
【问题描述】:

我的数据是新闻中的股票,所以每天一旦我的页面中的数据发生变化,但为了在数据更新时使页面保持最新,我在 getStaticProps 中使用了 revalidate:1,它现在工作正常,但这相对更好而不是使用 getServerSideProps? 注意:我的数据一天只更新一次(每天早上)

【问题讨论】:

  • 如果数据每天只更新一次,你能不增加revalidate的值吗?更好地利用通过 ISR 生成的缓存页面。
  • 是的,这是一个很好的建议,我尝试这样做,但问题是,假设新闻在上午 9 点更新,并且大多数用户在那个时间访问了该页面,但不幸的是,只呈现缓存页面时间......我不希望发生这种情况有没有办法通过在特定时间触发构建或其他方式来至少更新缓存?谢谢回复:)

标签: next.js


【解决方案1】:

我们必须考虑每个用户获取的数据本质上是否是个性化的,如果它是针对当前登录的用户个性化的,最好使用 getServerSideProps,因为它会在每个请求期间获取数据并预先- 每次都渲染它,这不涉及以任何方式使用缓存。

在 ISR 的情况下,它更适合呈现包含所有用户共有的内容的页面。后台重新生成可确保不间断地提供流量,始终来自静态存储,并且仅在生成完成后才推送新构建的页面。即使在重新验证时,访问者首先会收到缓存的版本,然后才会收到更新的版本。这种缓存策略通常称为“stale-while-revalidate”。

1 秒的重新验证分数很低,知道您每天只获得一次更新,最好每 60 秒或 120 秒重新验证一次。

服务器端渲染在第一次渲染时会很慢,并且与 ISR 相比可能会降低性能。

【讨论】:

    猜你喜欢
    • 2018-04-14
    • 1970-01-01
    • 2023-03-18
    • 2017-01-05
    • 2014-07-18
    • 1970-01-01
    • 2021-04-27
    • 2022-12-04
    • 2022-12-27
    相关资源
    最近更新 更多