小理解之前端渲染方式的演变

2,103 阅读3分钟

页面渲染大致经历了几个阶段:后端模板渲染、客户端渲染、node中间层、服务器端渲染(ssr)。

1、后端模板渲染

最初的渲染方式就是后端模板渲染,由后端模板引擎渲染好HTML后,返回给前端。前端用js去执行dom操作或者发送ajax请求数据,渲染其他动态部分。

基本的交互方式是:

1)前端请求一个地址url

2)后端接受这个请求,然后根据请求信息从数据库或者其他地方获取响应数据。

3)使用模板引擎如jsp将这些数据渲染成HTML

4)将HTML文本返回给前端。

在这个过程中前端的代码要嵌入后端的代码中造成:

1)前后端代码杂糅在一起,不方便本地开发、调试和自动化测试。

2)前端被约束在后端开发模式中,不能充分使用前端的构建生态,效率低下。

3)项目难以维护,遇到问题职责不清。

这种渲染方式好处是:

1)前端快速呈现服务器端渲染好的页面,用户体验良好。

2)SEO良好。

现在早期的一些网站,或者需要快速响应的展示性网站仍然采取这种方式。

2、客户端渲染

随着前后端分离的发展,以及前端组件化技术的出现。客户端渲染成为了主流。如vue react

基本交互方式是:

1)前端发送一个请求URL

2)后端接受这个请求,返回HTML文件

3)前端解析js后,通过ajax获取相应的数据

4)客户端将这些数据渲染成页面。

好处:

1)前端与后端分离,前后端只通过ajax交互数据。

2)让前端独立出来,更好的使用前端强大的生态。

坏处:

1)首屏加载缓慢,因为要等js加载完毕后才能渲染。

2)SEO不友好,因为HTML中几乎没有可用的信息。

3、node中间层

为了解决客户端渲染不足,便出现了node中间层概念。就是后端提供数据,node层渲染模板,前端展示页面。其中node层由前端人员负责。决定哪些页面在客户端渲染,哪些页面在服务端渲染。

交互方式:

1)前端请求一个url地址。

2)node层接收请求,根据请求信息,向后端服务器发起请求。

3)服务器接收请求,根据请求信息,从数据库或其他地方获取数据,返回给node

4)node根据数据渲染好首屏html,返回给前端。

好处:

1)SEO良好,首屏加载快速。

2)同时保证前后端分离。

坏处:

1)加了一层中间层,应用性能有所降低。

2)增加了前端架构的复杂度,对开发人员要求高。

4、服务端渲染(ssr)

一般来说,服务端渲染与node中间层是同一个概念。特指在node中间层的基础上,加上前端组件化技术在服务器端的渲染。因为前端组件化技术是给客户端用的,用在服务器端就比较困难,ssr就是为了解决这一问题。

总结

技术的发展在很大程度上是由需求推动的。反过来技术的发展又会提出新的需求。只有不断的更新自己的技术,才能完成新的需求。学海无涯,与君共勉。