客户端渲染
【过程】
- 用户输入地址,客户端向服务器发送请求
- 服务器传给浏览器相应的网页文件
- 浏览器解析文件
- 遇到ajax请求则向服务器再次请求一些数据
- 服务器再次向浏览器发送相应的数据
- 浏览器拿到ajax请求返回的数据后,将数据渲染在页面上
【优点】
- 可以向用户快速展示页面的内容,增加用户体验
- 给别人爬虫爬取相应的内容增加一定的困难
【缺点】
- 可能需要向服务器请求多次数据
- 不利于SEO搜索引擎优化,即百度等搜索引擎搜索不到客户端渲染的数据
服务端渲染
【过程】
- 用户输入url地址,向服务器发送请求
- 服务器接收请求,并在服务端操作网页文件,将对应数据导入文件
- 服务器在服务端渲染好整个网页,发送给客户端
- 客户端接收服务器发送过来的网页文件,不需要做任何操作,直接呈现
【优点】
- 只需要向服务器请求一次
- 利于SEO搜索引擎优化,即能被搜索引擎搜索到,能向用户展示你网页的东西
【缺点】
- 如果数据量过大,在服务器渲染时间就会过长,造成浏览器暂时的空白
- 容易被爬虫爬取
两者区别
-
本质区别:服务端渲染在服务端生成DOM树,客户端渲染在客户端生成DOM树
-
响应速度:服务端渲染会加快页面的响应速度,客户端渲染页面的响应速度慢
-
SEO优化:服务端渲染更有利于爬虫爬取信息,客户端渲染不利于SEO优化
-
开发效率:服务端渲染逻辑分离不好,不利于前后端分离,开发效率低,客户端渲染时采用前后端分离的方式来开发,效率更高
-
对于单页应用程序,资源请求量大,导致首屏渲染速度慢,使用服务端渲染可以在很大程度上解决首页白屏等待的问题