内容简介
Backbone.js是一个轻量级的Javascript框架,其精简的核心功能使得新的开发人员容易上手,灵活的插件机制可以保证复杂和个性化功能的实现。本书系统地介绍使用Backbone.js开发Web应用应该掌握的知识,对其背后的实现原理进行了抽丝剥茧式的分析,并且涵盖一些时下流行的技术,如REST,HTML 5以及移动应用开发等。全书自始至终都在力争使用简洁的语言、清晰的格式以及丰富的实例来帮助读者进行的学习。无论是对于Web前端开发的新手还是经验丰富的专业人员而言,通过阅读本书都能受益匪浅。
全书共8章,全面而系统地介绍了MVC模式和Backbone.js框架,讲解了如何使用易于管理的集合来组织多个模型,如何使用Backbone的视图来渲染模型和集合,如何捕获DOM事件,如何将模型和集合与RESTful架构的后端系统相互同步,以及如何把它们存储在HTML 5的本地存储当中等内容。书中不仅通过丰富的实例阐述Backbone.js基本知识及使用方法,还针对创建扩展插件、测试应用程序、创建移动应用等Backbone开发过程中比较具有挑战性的问题,提供了具体的解决方案。
目录
译者序
前 言
致 谢
第1章 理解Backbone
1.1 导论
1.2 使用MVC模式设计应用
1.3 使用模型与集合定义业务逻辑
1.4 使用视图与路由器为应用的行为建模
1.5 从零开始建立一套应用程序结构
1.6 编写第一个Backbone应用
1.7 在应用中实现URL路由
1.8 使用插件来扩展应用
1.9 如何参与Backbone项目
第2章 模型
2.1 导论
2.2 创建一个模型
2.3 模型属性的操作
2.4 模型标识符的操作
2.5 模型属性的验证
2.6 重写getters与setters方法
2.7 通过创建撤销点来保存或恢复模型的状态
2.8 模型中工作流的实现
2.9 在模型中使用的验证方式
2.10 验证HTML表单
2.11 在模型中使用嵌套属性
2.12 实现模型间一对一的关系
第3章 集合
3.1 导论
3.2 创建模型的集合
3.3 使用索引从集合中获取模型
3.4 使用ID从集合中获取模型
3.5 为集合添加一个模型
3.6 从集合中移除一个模型
3.7 以栈或队列的方式使用集合
3.8 对集合进行排序
3.9 对集合中的模型进行过滤
3.10 对集合进行遍历
3.11 集合的链式操作
3.12 在集合上执行NoSQL查询
3.13 在同一个集合中存储不同类型的模型
3.14 实现一对多的关系
第4章 视图
4.1 导论
4.2 渲染视图
4.3 使用jQuery处理视图元素
4.4 对视图中的模型进行渲染
4.5 对视图中的集合进行渲染
4.6 将视图拆分成子视图
4.7 处理视图的文档对象模型(DOM)事件
4.8 使用Backbone.Router在视图间进行切换
第5章 事件及其绑定
5.1 导论
5.2 在Backbone.js中管理事件
5.3 处理Backbone对象的事件
5.4 把模型绑定到视图
5.5 把集合绑定到视图
5.6 使用Backbone.stickit进行双向绑定
5.7 把模型与集合绑定到下拉列表
5.8 在视图中处理快捷键
5.9 处理路由器事件
第6章 模板及其他用户界面的相关技术
6.1 导论
6.2 在视图中使用模板
6.3 实现一个模板加载器
6.4 使用Mustache模板
6.5 定义表单
6.6 为表单添加验证功能
6.7 处理表单事件
6.8 使用Bootstrap框架定制一个表单
6.9 使用LayoutManager构建页面布局
6.10 创建语义化及风格化的数据表格
6.11 使用HTML5的画布元素进行绘图
第7章 REST及存储
7.1 导论
7.2 为后端应用构建REST API
7.3 使用MongoLab创建一个RESTful后端应用的原型
7.4 与RESTful服务同步模型和集合
7.5 使用Backbone创建一个RESTful服务的前端应用
7.6 使用轮询技术来获取数据
7.7 使用HTML5本地存储
第8章 其他相关技术
8.1 导论
8.2 在Backbone对
摘要与插图
第1章理解Backbone
在本章中,我们会介绍以下所列内容:
使用MVC模式设计应用
使用模型与集合定义业务逻辑
使用视图与路由器为应用的行为建模
从零开始建立一套应用程序结构
编写第一个Backbone应用
在应用中实现URL路由
使用插件来扩展应用
如何参与Backbone项目
1.1 导论
Backbone.js是一套基于模型-视图-控制器(Model-View-Controller,MVC)模式的轻量级的Javascript框架,可以用来帮助开发人员创建单页Web应用。借助Backbone的帮助,我们可以使用REST的方式来化客户端和服务器间的数据传输,从而实现了更加快速的Web页面更新。
Backbone.js日趋流行,我们在许多大型的Web应用和IT创业项目中都能看到它的身影,例如:
Groupon Now!:开发团队决定他们的第一款产品要高度基于AJAX技术,同时还要做到可链接和可共享。虽然Backbone对于他们来说是一项全新的技术,但他们发现其学习曲线比较平坦,上手快。因此仅在两周的时间里,他们就成功地发布了一个应用服务的可用版本。
Foursquare:这个项目使用Backbone.js的库来为foursquare的各类实体(例如地点、签到和用户等)创建模型类。开发人员发现Backbone的模型类提供了一套简单且轻量级的机制来捕获对象的数据和状态,并且还支持传统的继承方法。
linkedIn mobile:在这个项目中,Backbone.js用来创建其下一代基于HTML5的移动互联网应用程序。由于有了Backbone的帮助,维持应用程序模块化、结构化和可扩展性的这些工作一下子变得简单了,这样开发人员们才能专注于实现linkedIn的复杂的用户体验。此外,在iOS和Android这样不同的移动平台上,他们的应用程序仍然能够使用同一份代码库。
WordPress.com:这个是WordPress的一个SaaS的实现版本。它在其通知系统中使用了Backbone.js的模型、集合以及视图。除此之外,该网站还把Backbone.js整合到其统计(Stats)标签以及其主页上的一些其他功能当中。
Airbnb:这是一个基于社区的市场,帮助用户在世界范围内检索、发现和预订住宿服务。其研发团队在的多个产品中都使用了Backbone。不久前,他们结合使用Backbone.js、Node.js以及一个名为Rendr的库来重新开发了一个移动网站。
Backbone.js是由Jeremy Ashkenas在2010年开发documentCloud项目的过程中开发出来。现在,全世界大量Git(一种分布式的版本控制系统)开发者在使用并改进着Backbone.js。
在本章中,我们会给出一些关于如何使用Backbone.js的实际例子,并在遵循MVC以及Backbone的设计模式的基础上提出了一套设计结构,并用此结构构建了一个名为Billing的账单应用程序。在本书的后续章节中还会再涉及此设计结构。如果你之前没有任何使用Backbone.js进行开发的经验,那么阅读本章将对你十分有用;反之如果你是一位经验丰富的开发者,那么你可以跳过本章。