【发布时间】:2021-01-30 05:52:10
【问题描述】:
我正在从事一个涉及 React、Redux 和其他一些前端库的项目。我读过很多关于服务器端渲染的好东西,听起来很酷。所以我实现了服务器端渲染和客户端渲染。我在这两个之间进行了性能比较,我遇到了服务器端渲染的性能问题,不确定我做错了什么。我发现服务器端渲染需要大量 CPU/mem 资源,这大大降低了我的服务器速度。即使在一个简单的页面上,它也必须处理复杂的 react、redux 逻辑,包括存储初始化、虚拟 dom、每个请求的 css 提取。当流量很高时,情况会变得更糟,有时会停止响应。我的项目很复杂,页面有很多组件,还有很多减速器、中间件。我知道我们可以通过使用缓存来缓解这种情况,但是在我的项目中,我有数千个页面,并且内容需要根据 url 参数动态呈现并且不能过时,因此缓存不是一个可行的解决方案。即使使用缓存,如果页面命中缓存,它的渲染速度也比客户端渲染快。一旦缓存过期,服务器再次变慢。另外我觉得体验有点奇怪,因为从内容开始渲染到完成所花费的时间比客户端渲染要长得多。总体而言,客户端渲染感觉更加流畅。知道为什么吗?
【问题讨论】:
标签: reactjs server-side-rendering