web开发模式(服务端渲染,客户端渲染(前后端分离)以及如何选择web开发模式)

目前主流的Web开发模式,大致分类两种:
(1) ​ 基于服务器端渲染的传统Web开发模式 (SSR Server side rendering服务器端渲染)
(2) ​ 基于前后端分离的新型Web开发模式 (CSR Client side rendering客户端渲染)

何为渲染?
在这里插入图片描述
页面上的数据要发生更新,就是渲染。
这个工作放在服务器进行就是服务器端渲染,放在浏览器进行就是浏览器端渲染。
何为渲染?
如果我们只是想显示一堆不变的数据,那么我们直接写一个a.html丢到服务器上让客户端访问就可以了。但这是基本不可能的事情,数据一般是变化的。你不可能为每套数据写一个视图,所以我们需要分离数据和视图,然后使用一种技术将数据塞到视图中,这种技术就叫渲染。这工作放在服务器上做就是服务器端渲染,放在浏览器做就是浏览器端渲染。
SSR和CSR两者区别:
服务器端渲染,指的是后台语言通过一些模板引擎生成 html。
浏览器端渲染,指的是用 js 去生成 html,前端做路由。
补充:这里的渲染,就是指生成html文档的过程,和浏览器渲染html,展示到页面上没有关系。
web开发模式(服务端渲染,客户端渲染(前后端分离)以及如何选择web开发模式)_第1张图片服务端渲染优缺点
web开发模式(服务端渲染,客户端渲染(前后端分离)以及如何选择web开发模式)_第2张图片为什么要使用服务端渲染,它解决了什么?
web开发模式(服务端渲染,客户端渲染(前后端分离)以及如何选择web开发模式)_第3张图片服务端渲染有利于性能优化,解释:
web开发模式(服务端渲染,客户端渲染(前后端分离)以及如何选择web开发模式)_第4张图片客户端渲染优缺点:
web开发模式(服务端渲染,客户端渲染(前后端分离)以及如何选择web开发模式)_第5张图片前后端渲染对比:
web开发模式(服务端渲染,客户端渲染(前后端分离)以及如何选择web开发模式)_第6张图片
web开发模式(服务端渲染,客户端渲染(前后端分离)以及如何选择web开发模式)_第7张图片

服务端渲染的概念:服务器发送给客户端的 HTML 页面,是在服务器通过字符串的拼接,动态生成的。因此,客户端不需要使用 Ajax 这样的技术额外请求页面的数据。代码示例如下:
web开发模式(服务端渲染,客户端渲染(前后端分离)以及如何选择web开发模式)_第8张图片
服务端渲染的优缺点
优点:
(1)前端耗时少。因为服务器端负责动态生成 HTML 内容,浏览器只需要直接渲染页面即可。尤其是移动端,更省电。
(2)有利于SEO。因为服务器端响应的是完整的 HTML 页面内容,所以爬虫更容易爬取获得信息,更有利于 SEO。
缺点:
(1) 占用服务器端资源。即服务器端完成 HTML 页面内容的拼接,如果请求较多,会对服务器造成一定的访问压力。
(2) 不利于前后端分离,开发效率低。使用服务器端渲染,则无法进行分工合作,尤其对于前端复杂度高的项目,不利于项目高效开发。
PS:
SEO(Search Engine Optimization):汉译为搜索引擎优化。是一种方式:利用搜索引擎的规则提高网站在有关搜索引擎内的自然排名。目的是让其在行业内占据领先地位,获得品牌收益。很大程度上是网站经营者的一种商业行为,将自己或自己公司的排名前移。

前后端分离的 Web 开发模式

前后端分离的概念:前后端分离的开发模式,依赖于 Ajax 技术的广泛应用。简而言之,前后端分离的 Web 开发模式,就是后端只负责提供 API 接口,前端使用 Ajax 调用接口的开发模式。
前后端分离的优缺点
优点:
① 开发体验好。前端专注于 UI 页面的开发,后端专注于api 的开发,且前端有更多的选择性。
② 用户体验好。Ajax 技术的广泛应用,极大的提高了用户的体验,可以轻松实现页面的局部刷新。
③ 减轻了服务器端的渲染压力。因为页面最终是在每个用户的浏览器中生成的。
缺点:
① 不利于 SEO。因为完整的 HTML 页面需要在客户端动态拼接完成,所以爬虫对无法爬取页面的有效信息。(解决方案:利用 Vue、React 等前端框架的 SSR (server side render)技术能够很好的解决 SEO 问题!)

如何选择 Web 开发模式

不谈业务场景而盲目选择使用何种开发模式都是耍流氓。
比如
(1)企业级网站,主要功能是展示而没有复杂的交互,并且需要良好的 SEO,则这时我们就需要使用服务器端渲染;
(2)而类似后台管理项目,交互性比较强,不需要考虑 SEO,那么就可以使用前后端分离的开发模式。
(3)另外,具体使用何种开发模式并不是绝对的,为了同时兼顾了首页的渲染速度和前后端分离的开发效率,一些网站采用了首屏服务器端渲染 + 其他页面前后端分离的开发模式。即有时,在同一个项目中两种开发模式都使用。

你可能感兴趣的:(html,JavaScript)