zoukankan      html  css  js  c++  java
  • 前端对于服务端渲染(SSR)的理解

    什么是服务端渲染(SSR)?

      假设有项目需要渲染一个首页,平时我们的项目启动后,开始渲染,请求页面,返回的body为空,然后执行js将html结构注入body中,再结合css来渲染样式,展现出来。

      而使用了服务端渲染(SSR)后,简单理解是将组件或页面通过服务器生成html字符串,再发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序。渲染时请求页面,返回的body里已经存在服务器生成的html结构,之后只需要结合css显示出来。这就节省了访问时间和优化了资源的请求。

    使用SSR后的优点?

      1. 更利于网站的SEO

      2. 更利于首屏页面的渲染

    使用SSR后的局限性?

      1. 服务端压力较大

      本来是通过客户端完成渲染,现在统一到服务端node服务去做。尤其是高并发访问的情况,会大量占用服务端CPU资源。

      2. 开发条件受限

      在服务端渲染中,只会执行到componentDidMount之前的生命周期钩子,因此项目引用的第三方的库也不可用其它生命周期钩子,这对引用库的选择产生了很大的限制。

      3. 学习成本相对较高

      除了对本身项目使用的前端框架要熟悉,还需要掌握webpack、node、Koa2等相关技术。相对于客户端渲染,项目构建、部署过程更加复杂。

    部分理解和思路:

      next.js / nuxt.js 可以很好的完成SSR。

      对于toB的项目,SSR无所谓,对于toC的项目,SSR还是必要的。

      用了前端框架,浏览器接收到的还是模板和大量的JS,数据需要异步请求过来。所以存在SEO和性能问题。这时候就需要SSR了。

      如果不使用服务器端渲染,一个页面的展示流程大概就是,浏览器先下载html和js,然后到服务器请求json数据,最后根据json生成页面。

      如果使用服务器端渲染的话,以上步骤都在服务器端执行,也就是说服务器端从自己服务器那里先获取json,然后生成页面,最后把生成的页面输出成html给浏览器下载。

  • 相关阅读:
    Vim Tricks
    刘洋-从国内三本到牛津博士
    Pandas 学习笔记
    Netbeans and Remote Host for C/C++ Developing
    排序引论
    分枝定界法解0/1背包问题
    部署WEB项目到服务器(三)安装mysql5或者mysql8到linux服务器(Ubuntu)详解
    部署WEB项目到服务器(二)安装tomcat到linux服务器(Ubuntu)详解
    部署WEB项目到服务器(一)安装java到linux服务器(Ubuntu)详解
    FIleZilla连接linux(Ubuntu)服务器的相关问题
  • 原文地址:https://www.cnblogs.com/panic404/p/13032140.html
Copyright © 2011-2022 走看看