一、框架介绍

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. 网页WEB打印控件制作-开放源码

    在WEB系统中,打印的确是比较烦人的问题,如果我们能制作一个属于自己的自定义的打印插件,那么我们在后续自定义打印的时候能随心所欲的控制打印,这样的效果对于程序员来说是非常开心的一件事件,本文将自己开发 ...

  2. selenium2 Webdriver + Java 自动化测试实战和完全教程

    selenium2 Webdriver + Java 自动化测试实战和完全教程一.快速开始 博客分类: Selenium-webdriverselenium webdriver 学习selenium ...

  3. 记录一下emacs在window下的配置过程

    今天重装WIN7 64位新系统,装完发现emacs无法加载以前的插件了.网上搜一下才记起来,emacs默认读取的配置文件在c盘,在这个原始配置文件中还需要添加一些路径转换的语句才能转到用户自己的配置文 ...

  4. Arch Linux PDF格式文件无法显示中文

    From: http://blog.sina.com.cn/s/blog_5e54bc6801012gfg.html $ sudo pacman -S poppler-data

  5. c#与js中10进制16进制的转化,记录防忘

    js: var param="11"; param=parseInt(param,16);  //17 param=parseInt(param,10);  //11 //后面的参 ...

  6. android bundle存放数据详解

    转载自:android bundle存放数据详解 正如大家所知道,Activity之间传递数据,是将数据存放在Intent或者Bundle中 例如: 将数据存放倒Intent中传递: 将数据放到Bun ...

  7. JavaScript笔记:变量及其作用域

    一.变量的定义及声明 在javascript中变量仅仅是用来保存值的一个占位符而已,定义变量时要使用关键字var后跟一个变量名,如下所示: var message; //定义一个变量message,像 ...

  8. SQLServer查询所有库表结构信息

    1.查询数据库中的所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name 2.查询某个数据库中所有的表名: SELECT Name FR ...

  9. 傻瓜式操作Nagios

    傻瓜式操作Nagios   不少接触Nagios的朋友都会觉得安装配置困难,应用在企业网中所花费的时间成本很高,下面通过OSSIM来搞定它把. 为了节省资源,首先在淘汰的机器上安装一个低版本的OSSI ...

  10. Android test---CTS

    转载 1.下载最新的CTS download 2.准备工作 3.启动CTS测试 3.1 在控制台进入目录android-cts,目录android-cts下有三个文件夹,其中一个是tools. 3.2 ...