以下是一个简单的 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 示例可以帮助您在客户端请求到达时预取和预加载数据,优化应用程序的性能和响应时间。