14 November 2014

前言

说道接触javascript,最早可追溯到大二暑假,留校给学校开发研究生管理网站。那时候,动漫瘾还很大,并且第一次接触Extjs,RIA以及ASP.NET,MVC框架之类的。。啊,真是令人怀恋的过去。

投身web界后,发现近来javascript风头正劲,各种框架层出不穷,令人目不遐接,目瞪口呆,世界啊,你等等我吧。偶得一文,觉得总结的不错,内容如下:

正文

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

  1. 跨平台开发框架:PhoneGap 、 Titanium、 Trigger.IO(商业)- 这类框架是向web提供底层硬件的接口,让开发人员可以用WEB的技术开发出Native APP。
  2. UI框架:jQuery Mobile、 Sencha Touch(前身为Extjs)、 jqMobi - 这类框架提供“控件”:布局、按钮。。。。。。
  3. MVC框架:Backbone.js、 Spine.js、 Ember.js - 这类框架提供在javascript端上Model、View分离的技术,因为在one page的情况下,javascript控制的逻辑越来越复杂,需要做这样的分离。
  4. 依赖与加载框架:Require.js、 Sea.js - 当我们要写一个稍大型的web应用的时候,必然会面对不同JS文件间的引用,JS的同步、异步加载等需求,这种框架就是帮我们解决这样的问题的。

PhoneGap

地址: http://phonegap.com/

特点:

  • 开源
  • 一次编写,处处运行(IOS、Andriod、Win Phone)
  • 支持GPS、摄像头、文件系统。。。等系统接口

jQuery Mobile

地址: http://jquerymobile.com 特点:

  • 如果想要开发一款接近原生UI的应用,那采用一款UI框架会节省你很多的时间,jQuery Mobile就是这样的一个UI框架。
  • 不喜欢jQuery,可以选择其他的DOM选择器
  • 社区很活跃

Bootstrap这样响应式的开发更受欢迎,感觉上而言。

Backbone.js

Backbone.js是一款用在客户端javascript上的MVC框架,可以类比Ruby on Rails、Struts等Server端的MVC框架,但实现上存在一定的差别。

将Model的数据表现到view中需要使用模板引擎,Mustache

Mustache

Mustache的特点:

  • 支撑广泛的语言种类
  • 简单,但是很强大
  • 支持循环

underscore

backbone唯一强依赖的js: underscore.js。 其提供的js函数类似ruby中的库函数接口,具体例子如下:

  • Collections(集合): each, map, reduce, reduceRight, find, filter, reject, all, any, include, invoke,pluck, max, min, sortBy, groupBy, sortedIndex, shuffle, toArray, size
  • Arrays(数组): first, initial, last, rest, compact, flatten, without, union, intersection,difference, uniq, zip, indexOf, lastIndexOf, range
  • Functions(函数): bind, bindAll, memoize, delay, defer, throttle, debounce, once, after, wrap,compose
  • Objects(对象): keys, values, functions, extend, defaults, clone, tap, isEqual, isEmpty,isElement, isArray, isArguments, isFunction, isString, isNumber, isBoolean,isDate, isRegExp, isNaN, isNull, isUndefined
  • Utility(功能): noConflict, identity, times, mixin, uniqueId, escape, template
  • Chaining chain, value

地址:

  • https://github.com/jashkenas/underscore
  • http://underscorejs.org/

Require.js

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

其他待续。。。




傲娇的使用Disqus