打开HTML5的技术网站,满屏的“5个推荐的JavaScript框架”、“10个移动应用框架”,全都是你妹的框架,

但是,你知道这些框架是干毛用的吗?来吧,我们来梳理一下吧

目前HTML5涉及的框架大致可以分成以下几类:

1、跨平台开发框架:PhoneGap 、 Titanium、 Trigger.IO(商业)

这类框架是向web提供底层硬件的接口,让开发人员可以用WEB的技术开发出Native APP。

2、UI框架:jQuery Mobile、 Sencha Touch、 jqMobi

这类框架提供“控件”:布局、按钮。。。。。。

3、MVC框架:Backbone.js、 Spine.js、 Ember.js

这类框架提供在javascript端上Model、View分离的技术,因为在one page的情况下,javascript

控制的逻辑越来越复杂,需要做这样的分离。

4、依赖与加载框架:Require.js、 Sea.js

当我们要写一个稍大型的javascript应用的时候,必然会面对不同JS文件间的引用,JS的同步、异步

加载等需求,这种框架就是帮我们解决这样的问题的。

好,下面我们挑其中的一些框架来讲一讲。

  PhoneGap

http://phonegap.com/

  • 开源
  • 编写一次,可编译到IOS、Andriod、Win Phone。。。
  • 支持GPS、摄像头、文件系统。。。等系统接口

  jQuery Mobile

http://jquerymobile.com

如果你要开发一款接近原生UI的应用,那采用一款UI框架会节省你很多的时间,jQuery Mobile就是

这样的一个UI框架。

  • 跟jQuery没有绝对关系,你可以选用其他的DOM选择器
  • 社区很活跃,已经适用于实际开发
  • 虽然运行效率不断提升,但是目前还是有点慢,特别是用在PhoneGap上
 
 

Backbone.js

Backbone.js是一款用在javascript上的MVC框架,你可以类比成Ruby on Rails、Struts等Server端的MVC框架,

当然,在MVC的模式实现程度上可能有一定的差别。

  • 一款小型、流行的用于编写大型HTML5应用的MVC框架
  • 他们在用backbone:LinkIn,Soundcloud,Basecamp,Codiqa

上图是Backbone的MVC架构图,学习MVC的时候,我们应该都会接触到一个技术:模板引擎,因为需要把Model的数据表现到View中,

需要模板引擎这种粘合剂去把两者粘合起来。Mustache就是这样一个模板解释引擎

Mustache

  • 支撑广泛的语言种类
  • 简单,但是很强大
  • 支持循环
  • 你可以使用underscore.js模板,但是不够强大

Require.js

  • 把JS库模块化
  • 大型项目必备
  • 支持异步加载-加快加载速度
  • 支持把多文件压缩到一个文件中


  Require.js + Tempalte

  Require.js支持加载text文件,因此,可以用来加载模板文件
  1. define([“backbone”,“underscore”,“jquery”,“text!listview.html”],
  2. function(Backbone,_,$,listViewTemplate){…
  3. Mustache.render(listViewTemplate,this.model.toJSON())…
 
 
 

总结

框架满天飞,在框架大海中,捞出你需要的框架,DRY(Dont Repeat Yourself)

define([“backbone”,“underscore”,“jquery”,“text!listview.html”],function(Backbone,_,$,listViewTemplate){…Mustache.render(listViewTemplate,this.model.toJSON())…
define([“backbone”,“underscore”,“jquery”,“text!listview.html”],function(Backbone,_,$,listViewTemplate){…Mustache.render(listViewTemplate,this.model.toJSON())…
 

最新文章

  1. ionic 通过PouchDB + SQLite来实现app的本地存储(Local Storage)
  2. 分析案例:应用服务器W3WP进程CPU持续超过百分之九十(Oracle客户端Bug)
  3. Quartz 第六课 CronTrigger(官方文档翻译)
  4. PHP学习心得(五)——类型
  5. yii自动登陆的验证机制浅析
  6. Spring环境配置
  7. java基础之数组常用操作
  8. 浅谈Token理解运用
  9. Centos 7最小化InfluxDB部署
  10. java的classLoader分析与jettty的WebAppClassLoader
  11. web前端----html表单操作
  12. 01_re正则表达式
  13. Oracle连接知识
  14. 徐州网络赛B-BE,GE or NE【记忆化搜索】【博弈论】
  15. 在ROS Kinetic和Gazebo 8中使用智能汽车仿真演示
  16. haroopad 语法高亮问题
  17. bzoj 4545 DQS 的 Trie
  18. redis 连接字符串,设置密码
  19. 一篇搞定spring Jpa操作数据库
  20. python-字符串数据类型内置方法

热门文章

  1. STL六大组件之——算法小小小小的解析
  2. Start SparkR in RStudio
  3. 初识---Qt解析XML文件(QDomDocument)
  4. 关于微信聊天与朋友圈如何快速切换 Mark
  5. C#操作Access的一些小结
  6. [iOS微博项目 - 3.4] - 获取用户信息
  7. python scp
  8. 汇编语言程序入门实验一:在dos下对用户输入作出应答
  9. WinForm控件使用文章收藏整理完成
  10. Proxy代理(AOP实现原理)