打开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())…
 

搭建一个全栈式的HTML5移动应用框架(纯干货,亲!)的更多相关文章

  1. 一个小时搭建一个全栈 Web 应用框架

    把想法变为现实的能力是空想家与实干家的区别.不管你是在一家跨国公司工作,还是正在为自己的创业公司而努力,那些有能力将创意转化为真正产品的人,都具有宝贵的技能并拥有明显的实力.如果你能在不到一个小时的时 ...

  2. 全栈式JavaScript

    如今,在创建一个Web应用的过程中,你需要做出许多架构方面的决策.当然,你会希望做的每一个决定都是正确的:你想要使用能够快速开发的技术,支持持续的迭代,最高的工作效率,迅速,健壮性强.你想要精益求精并 ...

  3. 大数据全栈式开发语言 – Python

    前段时间,ThoughtWorks在深圳举办一次社区活动上,有一个演讲主题叫做“Fullstack JavaScript”,是关于用JavaScript进行前端.服务器端,甚至数据库(MongoDB) ...

  4. 为什么说Python 是大数据全栈式开发语言

    欢迎大家访问我的个人网站<刘江的博客和教程>:www.liujiangblog.com 主要分享Python 及Django教程以及相关的博客 交流QQ群:453131687 原文链接 h ...

  5. 基于NodeJS的全栈式开发

    前言 为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异.痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的 NodeJS,试 ...

  6. (转)也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离)

    原文链接:http://ued.taobao.org/blog/2014/04/full-stack-development-with-nodejs/ 随着不同终端(pad/mobile/pc)的兴起 ...

  7. 全栈式框架的选择:MEAN or MEANS?

    说明:个人博客地址为edwardesire.com,欢迎前来品尝.本博客作为备份和引流 这两个月一直在进行sails后端开发,其中遇到的问题不断.放在研究用户访问控制矸例程上的时间太多,最后也没用弄出 ...

  8. 也谈基于NodeJS的全栈式开发(基于NodeJS的前后端分离)

    前言 为了解决传统Web开发模式带来的各种问题,我们进行了许多尝试,但由于前/后端的物理鸿沟,尝试的方案都大同小异.痛定思痛,今天我们重新思考了“前后端”的定义,引入前端同学都熟悉的NodeJS,试图 ...

  9. vuejs、eggjs全栈式开发设备管理系统

    vuejs.eggjs全栈式开发简单设备管理系统 业余时间用eggjs.vuejs开发了一个设备管理系统,通过mqtt协议上传设备数据至web端实时展现,包含设备参数分析.发送设备报警等模块.收获还是 ...

随机推荐

  1. 【LeetCode】204 - Count Primes

    Description:Count the number of prime numbers less than a non-negative number, n. Hint: Let's start ...

  2. ubuntu 下安装sh 文件

    1. cd 到 指定文件夹 如: cd /home/ddy/下载 2. sudo chmod +x *.sh 3. sudo ./*.sh ok 了 (1)数据预处理    可以用下载好的数据集,也可 ...

  3. 黑马程序员——有关protocol的小结

    在OC程序中经常会有这样的问题就是一个类想让其他类帮自己实现某些方法,然后再将结果返回给这个类:如何让一个类要找的代理去实现自己想要的方法呢? 这样就需要有一个协议,让能遵守协议的其他类都能实现协议中 ...

  4. C++ 串

    ♣ string 的基类basic_string中没有虚函数,它无意成为基类.更像是为了处理字符相关的问题而专门提供的一个工具及操作方法.如:想要在一个字符串str1中查找str2,没必要每次都去写K ...

  5. Cubietruck查看CPU及硬盘温度

    想看看我的Cubietruck的工作状态,尤其是CPU及硬盘温度如何. 网上推荐的都是使用 lm-sensors 查看电脑温度.但是尝试后无奈发现该软件不兼容我的 Cubietruck. 然后就发现外 ...

  6. 基于MapReduce的关系代数运算(1)

    1.选择运算 Map函数:对R中的每个元组t,检测它是否满足条件C,如果满足,则产生一个键值对(t,t) Reduce函数:直接将每个键值对传递到输出即可 2.投影运算 Map函数:对R中的每个元组t ...

  7. 预定义宏_GNUC_ _MSC_VER

    一.预定义__GNUC__宏 1 __GNUC__ 是gcc编译器编译代码时预定义的一个宏.需要针对gcc编写代码时, 可以使用该宏进行条件编译. 2 __GNUC__ 的值表示gcc的版本.需要针对 ...

  8. 谈FTP服务器攻击技术及其展望 (修改中)

      欢迎大家给我投票: http://2010blog.51cto.com/350944 请看下篇:谈FTP服务器攻击技术及其展望 (下)              全文完http://chengua ...

  9. 如何调试最新的asp.net mvc源码

    vs2013调试 一.源码当前为5.2.0.0,按下面改为5.0.0.1 二./web.config 版本为5.0.0.0 改为5.0.0.1 三.vs2013 x86 本机工具命令提示 sn.exe ...

  10. HDU 5861 Road (线段树)

    Road 题目链接: http://acm.split.hdu.edu.cn/showproblem.php?pid=5861 Description There are n villages alo ...