我有一个页面,要求向API发出HTTP请求,这可能需要10秒钟以上才能响应,而且我的主机将我的执行时间限制为10秒。
有没有一种方法可以加载临时页面或其他内容,然后异步加载其余数据?我目前正在这样做:
export async function getServerSideProps({ params }) {
const res = await fetch(`${process.env.API_USER}name=${params['name']}`)
const videos = await res.json()
const tag_res = await fetch(`${process.env.API_TAG}author=${params['name']}`)
const tags = await tag_res.json()
const name = params['name']
return {
props: { videos, tags, name }, // will be passed to the page component as props
}
}
答案 0 :(得分:1)
让您将HTTP请求从getServerSideProps
移到客户端(您的组件)
// Functional component
useEffect(() => {
fetch(...)
}, [])
// Class-based component
componentDidMount() {
fetch(...)
}
如果您仍然想坚持使用getServerSideProps
,也许您必须升级/切换主机,或者实现代理/包装服务器来处理HTTP请求并尽快返回响应