BACKBONE:网络的骨干,通常要求具有更高的带宽和更高的可靠性。
在动漫中 翻译成反骨仔 就是叛逆的小孩子(事实上是介于小孩子与成年人之间的那个年纪的人)
e.g.最典型的就是路飞(Luffy)了吧 口头禅是“才不要·…”
Backbone.js为复杂WEB应用程序提供模型(models)、集合(collections)、视图(views)的结构。其中模型用于绑定键值数据和自定义事件;集合附有可枚举函数的丰富API; 视图可以声明事件处理函数,并通过RESRful JSON接口连接到应用程序。
此项目托管在 GitHub 上, 并且提供 带注释的源码, 在线的 测试套件, 应用示例, 教程列表 还有一个 实际应用项目的超长列表, 这些项目都使用了 Backbone. Backbone 允许在 MIT 软件协议 下使用.
你可以在GitHub issues 页面及#documentcloud频道下的Freenode IRC中 报告 bug 和 讨论功能, 在Google Group合wiki页面中提出问题,或在twitter上 @documentcloud。
Backbone是 DocumentCloud 的一个开源组件.
Models(模型)是任何Javascript应用的核心,包括数据交互及与其相关的大量逻辑: 转换、验证、计算属性和访问控制。你可以用特定的方法扩展 Backbone.Model,Model 也提供了一组基本的管理变化的功能。
集合是模型的有序组合,我们可以在集合上绑定 “change” 事件,从而当集合中的模型发生变化时fetch(获得)通知,集合也可以监听 “add” 和 “remove” 事件, 从服务器更新,并能使用 Underscore.js 提供的方法。
History 作为全局路由服务用于处理 hashchange 事件或 pushState,匹配适合的路由,并触发回调函数。 我们不需要自己去做这些事情 — 如果使用带有键值对的 路由,Backbone.history 会被自动创建。
backbone是一种帮助开发重量级的javascript应用的框架。
主要提供了3个东西:1、models(模型) 2、collections(集合) 3、views(视图)
backbone.js文件本身很小,压缩后只有5.3KB,作为一个框架级别的核心JS文件,这个数字很可怕。
除此之外,这个JS还必须依赖于另一个JS文件:underscore.js(包含许多工具方法,集合操作,js模板等等)
从Backbone 0.9.X系列版本升级到 1.1 应该是相当容易的。如果你从旧版本升级, 一定要检查更新日志。简单地说,一些大规模的重大更改是:
如果你想漂亮的更新一个Collection(集合)的内容,增加新的models(模型),删除丢失,和合并那些已经存在,你现在可以调用set(以前叫做"update") ,Model(模型)类似的操作也调用set。这是目前默认的,当你在collection(集合)上调用fetch时。为了得到旧的行为,传递{reset: true}。
如果你的URL片段中有字符,需要URL编码,Backbone现在会在你路由处理程序接收它们作为参数前为你解码(跨浏览器规范的行为)。
在0.9.x中,Backbone 事件有了两个新的方法:listenTo 和 stopListening, 这使得它能更容易地创建Views(视图)监听,当你想 remove view(视图)时,解除他们所有绑定的监听。
model(模型)验证现在只默认执行在save中 —不再执行在set中,除非传递了{validate:true}选项。model(模型)验证现在会触发一个 "invalid"事件,而不是"error"事件。
在1.1中 ,Backbone Views(视图)不再有 options 参数自动附加在this.options上。如果你喜欢可以继续附加。
在1.1中 ,Collection的 add, remove, set, push, 和 shift 方法现在返回来自collection(集合)的 models(模型)(或 models)。
当我们开发含有大量Javascript的web应用程序时,首先你需要做的事情之一便是停止向DOM对象附加数据。 通过复杂多变的jQuery选择符和回调函数很容易创建Javascript应用程序,包括在HTML UI,Javascript逻辑和数据之间保持同步,都不复杂。 但对富客户端应用来说,良好的架构通常是有很多益处的。
通过Backbone,你可以将数据呈现为 Models, 你可以对模型进行创建,验证和销毁,以及将它保存到服务器。 任何时候只要UI事件引起模型内的属性变化,模型会触发"change"事件; 所有显示模型数据的 Views 会接收到该事件的通知,继而视图重新渲染。 你无需查找DOM来搜索指定id的元素去手动更新HTML。 — 当模型改变了,视图便会自动变化。
某种意义上说,在用javaScript来创建web项目时,Backbone试图定义一组最小而高效的集合,包括了数据结构(models(模型) 和 collections(集合))和用户接口(views(视图) 和 URLS)。在web开发环境里,到处都是框架(帮你写好了一切),不过这些库需要你的网站在构建的时候符合该框架的样子,风格,默认的行为。但是,Backbone还是作为一个工具,让你可以随心所欲的设计你的网站。
如果你不懂Backbone或者不确定Backbone能否帮助到你,先运行一下 列表中基于Backbone的项目。
文档下面有大量可以运行的例子,请点击 play 执行他们。
web应用程序通常需要为应用的重要位置提供可链接,可收藏,可分享的 URLs。 直到最近, 猫点(hash)片段(#page)可以被用来提供这种链接, 同时随着 History API 的到来,猫点已经可以用于处理标准 URLs (/page)。 Backbone.Router 为客户端路由提供了许多方法,并能连接到指定的动作(actions)和事件(events)。 对于不支持 History API 的旧浏览器,路由提供了优雅的回调函数并可以透明的进行 URL 片段的转换。