前后端渲染
什么是前端渲染和后端渲染?
早期的网站,几乎所有都使用 ASP、Java、PHP 这类做后端渲染,但后来随着 jQuery、Angular、React、Vue 等 JS 框架的崛起,开始转向了前端渲染。
服务器端渲染
整个HTML页面是由服务器来渲染的,服务器直接生产渲染好对应的HTML页面,返回给客户端进行展示。
后端渲染的优势:
- 服务端渲染不需要先下载一堆 js 和 css 后才能看到页面(首屏性能)
- 数据是可以在源代码中看到的,利于SEO
后端渲染的缺点:
- 整个页面的模块由后端人员来编写和维护
- HTML代码和数据以及对应的逻辑会混在一起,编写和维护都是非常糟糕的
后端渲染的适用场景:
- 适用于开放性网站,博客、官网等面向大众用户
- 首屏页面展示
前端渲染
前端渲染的方式起源于JavaScript的兴起,ajax的大热更是让前端渲染更加成熟,前端渲染真正意义上的实现了前后端分离,前端只专注于UI的开发,后端只专注于逻辑的开发,前后端交互只通过约定好的API来交互,后端提供json数据,前端通过ajax获取数据,并通过js把数据渲染到页面上去。
前端渲染优势:
- 前后端责任清晰,后端专注于数据上,前端专注于交互和可视化上
- 局部刷新。无需每次都进行完整页面请求
- 网络传输数据量小
前端渲染缺点:
目前的组件渲染流程是同步阻塞的,对首屏性能提出了挑战
- 低端设备上 JS 执行效率低,白屏时间长
- 弱网环境下数据返回慢,loading 时间长
前端耗时较多,不利于SEO
AJAX
SPA阶段
在前后端分离的基础上加了一层前端路由,也就是前端来维护一套路由规则。(例如vue里组件对应一个路由)
SPA核心:改变url页面不进行整体刷新
改变URL不会去服务器请求新的资源,因为改变的是前端路由。当然如果刷新的话还是会向服务器发送请求。