如何处理下一个js中加载缓慢的页面

时间:2020-09-25 02:51:57

标签: next.js

我有一个页面,要求向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
    }
}

1 个答案:

答案 0 :(得分:1)

让您将HTTP请求从getServerSideProps移到客户端(您的组件)

// Functional component
useEffect(() => {
  fetch(...)
}, [])

// Class-based component
componentDidMount() {
  fetch(...) 
}

如果您仍然想坚持使用getServerSideProps,也许您必须升级/切换主机,或者实现代理/包装服务器来处理HTTP请求并尽快返回响应