【问题标题】:React Server Side Rendering with expensive initial API call使用昂贵的初始 API 调用反应服务器端渲染
【发布时间】:2017-10-04 08:54:41
【问题描述】:

我现在遇到了 React SSR 的问题。 基本上我正在构建一个通用的 React 应用程序,在从浏览器发送初始请求后,服务器应该准备所有必要的数据并调用 renderToString() 将呈现的 HTML 传递给用户。

在我的服务器端代码中,我有类似的内容:

fetchInitialData().then((response) => renderToString(...))

如您所见,服务器将等待 fetchInitialData 完成,然后它可以发送呈现的 HTML。但是,这里的问题是 fetchInitialData 需要很长时间才能完成,这意味着在客户端用户将看到一个空白屏幕,直到服务器完成初始 API 调用。

我的问题是服务器有没有办法向用户发送加载页面,当它完成 API 调用时,用实际数据更新加载屏幕?

====== 我能想到的一种解决方案是让服务器直接将加载页面发送给用户,然后用户在 componentDidMount() 中调用该 API 有更好的请指教

【问题讨论】:

  • 您可以创建预期结果的简化(淡入淡出)HTML 内容(仅针对适合您屏幕的部分)并将该内容硬编码到您的页面中。获取后,您可以在一个替换操作中将虚假内容替换为真实数据。
  • @JeroenHeier 这就是我想要做的。但是服务器如何用实际的内容替换硬编码的内容呢?我的想法是,在服务器调用 res.send(html) 之后,它不再控制该部分
  • 也许this可以帮助你。

标签: javascript reactjs server-side-rendering


【解决方案1】:

我正在为自己回答这个问题。

如果有人也遇到这个问题,可以考虑使用facebook开发的bigpipe技术。

整个想法是服务器仍然发送html,但是没有

猜你喜欢
  • 1970-01-01
  • 2019-02-09
  • 2018-10-02
  • 2017-01-14
  • 2018-02-16
  • 1970-01-01
  • 2016-02-05
  • 1970-01-01
  • 2016-12-12
相关资源
最近更新 更多