SSR和SSG

发布于:

#CSR客户端渲染

传统的单页面应用(Vue、React)是CSR(client side render)客户端渲染。即网页的渲染发生在客户端,通过js来动态渲染页面的内容。csr下,浏览器向服务器请求html文件,再请求js文件,js运行生成dom,浏览器生成对应的页面结构。

#SSR服务端渲染

而 SSR(Server Side Render)服务端渲染,是在服务端渲染应用(Jsp、Asp、Nextjs)。
ssr应用,服务器会把html、js、css组成一个完整的页面发送给客户端。
ssr返回给客户端的是一个完整的html字符串,客户端把html字符串转换为实际显示的页面,这个步骤叫做Hybrid(水合),即把"干瘪的字符串注水成为美观的html"。

#SSR相较CSR的优点

  1. SEO更友好,搜索引擎可以抓取到服务器返回的内容
  2. 更快的首屏加载,无需等待js的执行,初始化不会白屏

#SSR SEO更好的原因

  1. 搜索引擎爬虫可以直接获取到服务器端渲染的完整页面内容
  2. SSR可以更快的提供首次加载的内容
  3. SSR可以提前生成page meta元数据

#SSR的缺点

  1. 因为每次用户请求时都需要在服务器渲染页面,会增加服务器的负担
  2. 开发复杂程度更高,如客户端服务端不一致的问题(如模式主题)

#SSG静态页面生成

SSG的含义不同于SSR,为(Static Site Generation),在页面构建时直接生成静态html,也通过服务器把html返回给客户端。但是SSG返回的是静态的预生成的页面。
SSG相比CSR和SSR,更适合生成一些数据不常变化和无需实时数据的网站,如博客。