Vercel Edge Function 数据预取和预加载的代码示范

24 min read

以下是一个简单的 Vercel Edge Function 代码示范,用于在客户端请求到达时预取和预加载数据。

const fetch = require("node-fetch");

async function fetchUserData(userId) {
  const url = `https://api.example.com/users/${userId}`;
  const response = await fetch(url);
  const userData = await response.json();
  return userData;
}

module.exports = async (req, res) => {
  const userId = req.query.userId; // 假设用户 ID 作为查询参数

  if (userId) {
    // 预取用户数据
    const userData = await fetchUserData(userId);
    res.setHeader("Cache-Control", "s-maxage=60, stale-while-revalidate"); // 设置缓存策略
  }

  // 预加载其他资源
  // ...

  res.status(200).send("Hello, world!");
};

上述代码中,我们定义了一个 fetchUserData 函数,在每次 Edge Function 被执行时异步获取用户数据。

在函数的主要代码块中,我们检查是否存在 userId 查询参数。如果存在,我们调用 fetchUserData 函数获取用户数据,并在响应头中设置缓存策略。如果不存在 userId 查询参数,则直接进入下一步。

最后,我们预加载其他资源(可能是 JavaScript、CSS 或图片等),在最后发送响应。

这个简单的 Edge Function 示例可以帮助您在客户端请求到达时预取和预加载数据,优化应用程序的性能和响应时间。