一、框架介绍

RequireJS
资料:http://www.requirejs.cn/
RequireJS的目标是鼓励代码的模块化,它使用了不同于传统<script>标签的脚本加载步骤。可以用它来加速

、优化代码,但其主要目的还是为了代码的模块化。它鼓励在使用脚本时以module ID替代URL地址。

Angularjs
资料:http://www.runoob.com/angularjs/angularjs-tutorial.html
AngularJS是一个开源的JavaScript框架,由Google发明并负责演进和维护。AngularJS基于MVC架构,目标是使得开发和测试更富有效率、更加容易。AngularJS扩展了传统的HTML代码,使得动态内容能够和页面元素进行双向绑定。AngularJS是一个独立的框架,这意味着它不依赖于任何别的JavaScript框架。

Durandaljs
资料:http://durandaljs.com/docs.html
Durandal是一个JS框架用于构建客户端single page application(SPAs).它支持MVC,MVP与MVVM前端构架模式

。使用RequireJS做为其基本约定层,Durandal能提供高效的可维护的SOLID代码标准。

BackboneJs
资料:http://www.css88.com/doc/backbone/
Backbone.js为复杂WEB应用程序提供模型(models)、集合(collections)、视图(views)的结构。其中模型用于

绑定键值数据和自定义事件;集合附有可枚举函数的丰富API; 视图可以声明事件处理函数,并通过RESRful

JSON接口连接到应用程序。

二、比较

1、社区
选择框架的一个重要因素是框架社区的规模和开发者的数量和活跃度。三者相比,AngularJS社区规模最大

、发展更快、社区也最有活力。而且AngularJS在GitHub的跟随者也更多,在StackOverflow的问答也更多。

2、框架的大小
页面加载时间是Web应用成功的关键因素之一。用户需要能快速地访问信息,影响页面加载时间的两个因素

:JavaScript框架的大小和启动它所需的时间。 比较这三个框架的压缩版:AngularJS 1.2版有105KB,

EmberJS 1.9.1版有97KB,BackboneJS 1.1.2版有65KB。但是,AngularJS框架无任何依赖,BackboneJS框架依

赖于Underscore.js库(52KB),EmberJS框架和BackboneJS框架通常需要jQuery库(82KB)来简化操作。因此

,AngularJS框架的大小才是真正最小的。

3、模板
AngularJS框架和EmberJS框架都包含了一个模板引擎。而BackboneJS框架无模板引擎,开发者需要选择一个

第三方模板引擎集成到项目中。当然,对于BackboneJS框架来说,Underscore.js库就包含了模板引擎,可以

用它。

4、灵活性
有很多JavaScript插件可以完成很多专门的工作。这是非常有用的,因为每一种框架都无法做到面面俱到。

所以,对于框架来说,支持插件、支持扩展就很重要了。三者相比,BackboneJS框架是最灵活的框架,因为它

的约定最少,开发者在使用时可以自己做很多决定。EmberJS框架和AngularJS框架在某种程度上来说是灵活的

,但不够灵活。

5、学习曲线
AngularJS框架的开发者可以快速构建Web应用,快速使用双向绑定,基本上无需学习。但是要深入掌握

AngularJS框架,就需要学习一些专业术语,学习曲线也比较陡峭。EmberJS框架的学习曲线就比AngularJS平

滑一些。 BackboneJS框架更容易学习,但是要掌握它还需学习Underscore.js库。

三、结论
没有最好的JavaScript框架,只有最适合自己的JavaScript框架。一般来说,AngularJS框架相对更好一些

,它发展最迅猛,更有活力,有庞大的社区和Google在背后支持。BackboneJS是极简主义的框架,它体积小、

易于学习。 最流行的JavaScript库是jQuery,它提供了一套JavaScript函数,减少了很多开发工作。但是

jQuery只是一个辅助库,真正要在前端MVC模式上有大作为的库,还是要数下面的三个JavaScript库:

AngularJS、BackboneJS和EmberJS。下面我将对这三个JavaScript库做对比。

参考信息:
http://wenku.baidu.com/link?url=Yqdre1IzWiH_9HoU3AL4zS8gnZqx2RwQtTBX-J_65_0h8QzQuwOE2ImJU2BtdjdlWrZYEQwmpZP2e18znyV3fQBMcQSxWOb7Zm4-wZMHylm

三款Javascript SPAs框架资料整理和总结的更多相关文章

  1. unity--IOC框架资料整理

    今天在网上找了一些unity资料研究,出了好多问题,编译无法通过,经人指点总算成功编译运行,做个笔记,整理如下: 一.下载unity: 二.在项目中添加Microsoft.Practices.Unit ...

  2. 对于zuul服务网关框架资料整理

    本次博客只是整理了一些 看过的博客.源码等 zuul入门(1)zuul 的概念和原理 https://www.cnblogs.com/lexiaofei/p/7080257.html 深入理解Zuul ...

  3. javascript单元测试框架mochajs详解

    关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...

  4. javascript单元测试框架mochajs详解(转载)

    章节目录 关于单元测试的想法 mocha单元测试框架简介 安装mocha 一个简单的例子 mocha支持的断言模块 同步代码测试 异步代码测试 promise代码测试 不建议使用箭头函数 钩子函数 钩 ...

  5. 【微服务】使用spring cloud搭建微服务框架,整理学习资料

    写在前面 使用spring cloud搭建微服务框架,是我最近最主要的工作之一,一开始我使用bubbo加zookeeper制作了一个基于dubbo的微服务框架,然后被架构师否了,架构师曰:此物过时.随 ...

  6. 【转】12 款优秀的 JavaScript MVC 框架评估

    JavaScript MVC 框架有很多,不同框架适合于不同项目需求.了解各种框架的性能及优劣有利于我们更加快捷的开发.作者(Gordon L.Hempton)一直在寻求哪种MVC框架最为完美,他将目 ...

  7. javascript运动框架(三)

    迟到了好几天,不好意思哈!继续来优化一下javascript运动框架的代码.之前的代码存在bug,当重复点击时速度会加快,那么怎么解决这个bug呢? 现在我们就来解决一下,其实很简单,在开始运动时,关 ...

  8. 介绍三款大前端UI框架

    一.蚂蚁金服团队推出的基于React antd (全名:ant.design) 友情跳链:https://ant.design/index-cn:使用antd模板:https://pro.ant.de ...

  9. Selenium自动化测试框架入门整理

    ​​关注嘉为科技,获取运维新知 本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明.作为开发人员.测试人员入门参考. 本文参考:Se ...

随机推荐

  1. I'm an artist who loves linux (转)

    My father got me a computer for graduation with 512MB RAM and a Pentium processor. It came with Wind ...

  2. js 取得 Unix时间戳(Unix timestamp)

    js 取得 Unix时间戳 Unix时间戳(Unix timestamp),或称Unix时间(Unix time).POSIX时间(POSIX time),是一种时间表示方式,定义为从格林威治时间19 ...

  3. 如何将win7变为wifi热点

    以前经常使用connectify软件一键设置win7热点,但发现该软件影响开机速度,于是研究了一下win7自带的wifi功能,简单方便,分享如下: 1.打开命令提示符: [开始]/搜索框中输入“cmd ...

  4. opencv 震撼你的视觉-------基础篇

    opencv 最近在做一个钓鱼网站的项目中用到了一个叫opencv的玩意儿,以前没接触过.感觉挺新鲜的,而且项目中要用,所以就问了一下度娘(是想Google一下的,显得高大上and专业一点,但是英语水 ...

  5. [转]:Delphi 中的哈希表(1): THashedStringList

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  6. Bootstrap文件上传插件File Input的使用

    基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用 Bootstrap文件上传插件File Input是一个不错的文件上传控件, ...

  7. 易语言5.6 精简破解版[Ctoo]

    说明:本易语言5.6破解版 加入了[E剑终情]大神制作的完美通杀补丁,本人还修复了静态编译的问题. 关于静态编译失效的问题,大家解压之后会看到易语言根目录有一个"易言语静态编译配置工具&qu ...

  8. MongoDB(五)mongo语法和mysql语法对比学习

    我们总是在对比中看到自己的优点和缺点,对于mongodb来说也是一样,对比学习让我们尽快的掌握关于mongodb的基础知识. mongodb与MySQL命令对比 关系型数据库一般是由数据库(datab ...

  9. $.getJSON在IE8下失效

    $.getJSON("/Home/GetData?r=" + Math.random(), { ids: ids }, function(data) { //处理逻辑 }); 原因 ...

  10. 解决CentOS无法解析域名的问题

    用SecureCRT连接到CentOS上,发现ping IP通,ping地址不同 [root@zyt-ceshi2 ~]# ping www.baidu.comping: unknown host w ...