前后端渲染

什么是前端渲染和后端渲染?

早期的网站,几乎所有都使用 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不会去服务器请求新的资源,因为改变的是前端路由。当然如果刷新的话还是会向服务器发送请求。

参考文献

什么是前端渲染和后端渲染? - 打遍天下吴敌手 - 博客园 (cnblogs.com)