💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
**SSR:server side render** 服务端渲染,也称为SSR(Server Side Rendering),是指在**服务器上运行JavaScript以生成完整的页面**,在客户端接收到页面后,只需做少量工作即可展示页面。当用户请求页面时,服务器会先把页面对应的HTML结构和预加载的数据计算完成后,一同发给客户端,客户端只需要填充这些数据到HTML节点中,即可将页面呈现给用户 #### 二、 使用SSR的利弊 ##### SSR的优势 1\. 更利于**SEO**。 不同爬虫工作原理类似,只会爬取源码,不会执行网站的任何脚本(Google除外,据说Googlebot可以运行javaScript)。使用了React或者其它MVVM框架之后,页面大多数DOM元素都是在客户端根据js动态生成,可供爬虫抓取分析的内容大大减少(如图一)。另外,浏览器爬虫不会等待我们的数据完成之后再去抓取我们的页面数据。服务端渲染返回给客户端的是已经获取了异步数据并执行JavaScript脚本的**最终HTML**,网络爬中就可以抓取到完整页面的信息。 2\. 更利于**首屏渲染** 首屏的渲染是node发送过来的html字符串,并不依赖于js文件了,这就会使用户更快的看到页面的内容。尤其是针对大型单页应用,打包后文件体积比较大,普通客户端渲染加载所有所需文件时间较长,首页就会有一个很长的白屏等待时间。 ##### SSR的局限 1. **服务端压力较大** 本来是通过客户端完成渲染,现在统一到服务端node服务去做。尤其是高并发访问的情况,会大量占用服务端CPU资源; 2. **开发条件受限** 在服务端渲染中,只会执行到componentDidMount之前的生命周期钩子,因此项目引用的第三方的库也不可用其它生命周期钩子,这对引用库的选择产生了很大的限制; 3. **学习成本相对较高** 除了对webpack、React要熟悉,还需要掌握node、Koa2等相关技术。相对于客户端渲染,项目构建、部署过程更加复杂。