3

我使用了 Vercel 文档中提供的示例,每隔 15 秒从 MongoDB 获取数据,但不幸的是该功能不起作用。我应该怎么做才能使其按预期工作?

export async function getStaticProps() {
  const allData = getSortedData();

  const client = await clientPromise;
  const isConnected = await client.isConnected();
  const alerts = await client.db()
    .collection("alerts")
    .find({})
    .limit(6)
    .toArray();
  const alertsData = JSON.parse(JSON.stringify(alerts));

  return {
    props: {
      allData,
      isConnected,
      alertsData
    },
    revalidate: 15,
  };
}
4

2 回答 2

2

因此,重新验证不仅仅是每 15 秒获取一次新数据。它在构建时生成页面,将其作为缓存中的静态内容提供,然后等待下一个用户触发新的构建。新用户第一次触发构建时,他/她将看到一个陈旧的页面。然后在后台生成新页面并提供给下一个刷新特定网页的用户。

这是 Lee Robinson 解释的带有时间戳的快速视频。 https://youtu.be/nrfuN_Hyd3Y?t=112

我希望这能让你更清楚!

于 2021-10-23T11:14:42.297 回答
-1

使用 SWR 重新验证数据。这是文档的链接: SWR 文档

于 2021-10-23T15:20:37.153 回答