MV*模式比较

2015-05-05 | 分类: Javascript | 标签: MVC MVVM Javascript
  1. MVC模式 backbone.js

为了去除掉以往 jQuery 过分依赖DOM来写业务逻辑,

导致后期代码逻辑混乱,DOM和JS上紧耦合. 函数内部层层调用,

甚至还会出现各种夸多个文件层层调用.使得业务最终变得难以维护,越来越臃肿,

功能耦合度越高.修改起来就越容易导致其他功能出现难以预料的BUG .

而Backbone则很大程度上解除DOM和JavaScript的耦合关系. 更接近MVC的真谛.

但是Backbone只提供基本的工具. 没有进行更加复杂的封装.

  1. angularjs

把JS逻辑和HTML标签紧密结合在一起, 通过依赖注入, 来实现开发模块化.

AngularJS的确提供了很多的遍历, 封装了很多复杂逻辑, 双向数据绑定. 逻辑区域划分.

—————-比较———–

backbone支持ie6以上的版本 angularjs 支持ie9以上版本,在ie9也会遇到很多问题

angularjs 压缩版本 101k -120k (没有压缩的开发者版是800K以上,1.2.X版本)

Backbone 依赖 Underscore.js 压缩后 Backbone + Underscore = 20k + 14k = 34k ~ 36k的样子。

别高兴的太早的, Backbone 还需要引入一个核心库。类似于jQuery这样的。

PC开发时,引入一个压缩过的jQuery1.11.1 是101k~105k,不兼容IE6 7 8 引入压缩后的 jQuery 2.0以上版本是 89K ~ 94k。

所以大小加起来 Backbone + Underscore + jQuery = 130k ~ 145k 。

如果是移动端的开发,不需要引入jQuery ,而是使用Zepto的话。

Backbone组合的大小就骤降到了 44k~50k. 这个时候Backbone在移动端的优势就体现出来了。

而这样一来. Backbone + Underscore + jQuery(or Zepto) 就比一个AngularJS 多出了2 次HTTP请求.