Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么使用服务器端渲染_Javascript_Reactjs - Fatal编程技术网

Javascript 为什么使用服务器端渲染

Javascript 为什么使用服务器端渲染,javascript,reactjs,Javascript,Reactjs,我最近刚刚学习了react,并打算将其用于我的下一个项目。我曾经遇到过几次react服务器端渲染,但我想知道为什么在“现代”中我们仍然需要它 在本文中,它认为使用服务器端呈现,用户不必等待从CDN或其他地方加载这些js来查看初始静态页面,当js到达时页面将恢复功能 但是在使用webpack产品配置和gzip构建之后,整个包(包括react、我的代码和其他很多东西)只需要40kb,我有aws CDN。我不太明白在我的情况下使用服务器端渲染的原因 所以问题是,如果gzip之后生成的javascrip

我最近刚刚学习了react,并打算将其用于我的下一个项目。我曾经遇到过几次react服务器端渲染,但我想知道为什么在“现代”中我们仍然需要它

在本文中,它认为使用服务器端呈现,用户不必等待从CDN或其他地方加载这些js来查看初始静态页面,当js到达时页面将恢复功能

但是在使用webpack产品配置和gzip构建之后,整个包(包括react、我的代码和其他很多东西)只需要40kb,我有aws CDN。我不太明白在我的情况下使用服务器端渲染的原因


所以问题是,如果gzip之后生成的javascript包非常小,为什么人们仍然使用服务器端渲染

我认为,若你们在追求搜索引擎优化,那个么在服务器上呈现的效果会更好。 因此,所有内容都将由bot SEO读取。

加载时间 应用程序的呈现视图可以在初始HTTP请求的响应中交付。在传统的单页web应用程序中,第一个请求将返回,浏览器将解析HTML,然后对脚本发出后续请求,最终呈现页面。这些请求仍然会发生,但它们永远不会妨碍用户查看初始数据

这对快速互联网连接没有多大影响,但对于网络覆盖率较低地区的手机用户来说,这种数据的初始渲染可以使应用程序渲染速度加快20-30秒

带有静态数据的视图也可以在网络级别缓存,这意味着React应用程序的呈现视图可以用很少的计算开销来提供

搜索引擎优化 当一个搜索引擎爬虫到达一个网页时,HTML被提供,静态内容被检查和索引。在纯客户端Javascript应用程序中,没有静态内容。一旦适当的脚本加载并运行,它就会被动态创建和注入

与React不同,大多数框架都无法将其组件图序列化为HTML,然后对其进行重新充气。他们必须使用,这通常涉及在服务器的无头浏览器中呈现页面,然后在爬虫请求时提供该版本

React只需将组件树从服务器端JS环境(如Node.JS)呈现为HTML字符串,然后立即提供服务。不需要无头浏览器或额外的复杂性

Noscript 它还允许您编写最终可以用作瘦客户机的应用程序。这意味着处理在服务器上进行,应用程序可以在禁用Javascript的浏览器中使用。这是否是一个需要考虑的重要市场是另一次争论。 这是一个用户体验问题,一些设计师决定他们不喜欢增量渲染。设计师希望页面显示完整和完美,而不需要加载微调器、在此处插入获取的文本以及替换布局


滚动条恢复是客户端渲染的一个难题。请参阅(向前和向后导航时,滚动位置将丢失)。服务器端呈现不受此问题的影响。

除了上面提到的SEO之外,使用SSR浏览器可以在加载所有Java脚本文件之前立即显示页面。我有一个解释。

复杂的网站可能需要相对较长的时间才能在客户端上呈现,尤其是移动客户端。一开始就有一个预渲染版本可以减少这种延迟。最大限度地减少客户端对网络延迟的感知并提高SEO。绝对同意@Shashank,搜索引擎还不能索引完全由js驱动的应用程序。只渲染initialState()就够了吗在服务器端和客户端的每个入口点和搜索引擎优化机器人的其他东西仍然可以找到我的网站?发现这篇文章非常有用的服务器端反应的例子