1、非完全前后端分离

前端只需完成页面的制作,并且完成一些js交互即可,页面中动态的数据绑定是交给后台工程师去做的

【优势】

  • 动态展示的数据在源代码中能够看到,有利于SEO优化

  • 从服务器端获取的结果就已经是最后要呈现的结果了,不需要客户端做额外的事情,所以页面加载速度快(前提是服务器端处理的速度也够快),所以类似于京东、淘宝这些网站,首屏数据一般都是经由服务器端渲染的

【弊端】

  • 如果页面中存在需要实时刷新的数据,每一次想要展示最新的数据,页面都要重新的刷新一次

  • 都交给服务器端做数据渲染,服务器端压力太大(所以京东、淘宝那种网站除了首屏是用服务器端做渲染外,其余都是用客户端做数据渲染绑定的)

  • 这种模式不利于开发(开发效率极低)


2、前后端完全分离

页面中需要动态绑定的数据是交给客户端完成渲染的

  • 向服务器端发送ajax请求

  • 把从服务器端获取的数据解析处理,拼接成我们需要的HTML字符串

  • 把拼接好的字符串替换页面中某一部分的内容

【优势】

  • 我们可以根据需求,任意修改页面中某一部分的内容(例如实时刷新),整体页面不刷新,性能好,体验好(所有的都是由ajax实现请求)

  • 有利于开发,提升开发效率(后台不需要考虑前台如何实现的,前台不需要考虑后台使用的是什么技术,真正意义上实现了技术的划分)

  • 可以同时进行开发(项目开发开始,首先制定前后端数据交互的接口文档,后台把接口先写好,客户端按照接口调取即可,后台再去实现接口功能即可)

【弊端】

  • 不利于SEO优化,页面中没有动态数据添加的部分

  • 交由客户端渲染,首先需要把页面呈现,再通过ajax请求数据,然后进行数据绑定,浏览器再把动态添加的部分重新进行渲染,无形中浪费了一些时间,没有服务器端呈现页面快

【前端模版引擎】

  • template.js

  • ejs

  • es6

【MVVM框架 - 数据驱动】

  • Vue

  • React

  • Angular