O'Reilly: Developing JavaScript Web Applications 中译本

Update! 官网图书介绍:O'Reilly: JavaScript Web Applications .

《基于 MVC 的 JavaScript Web 富应用开发》Developing JavaScript Web ApplicationsAlex MacCaw 的新作(由O'Reilly出版发行),本书系统而深入的讲解了如何使用最前沿的Web技术构建下一代互联网富应用程序。作者 Alex MacCaw 是一名Ruby/JavaScript 程序员,在开源社区中很有名望,是Spine框架的作者,同时活跃在纽约、旧金山和柏林的各大 Ruby/Rails 论坛。除了作为一名工程师,他还喜欢带着他的尼康D90和冲浪板环游世界。

有赖于强大的JavaScript引擎以及CSS3和HTML5新技术,如今的JavaScript Web 富应用的用户体验已经可以和桌面系统相媲美。关键是如何平滑的将服务器端的复杂度移植到客户端,这并不容易做到。这本书将专注于讲述如何构建“优雅又不失高水准”(state of the art)的JavaScript应用,包括软件架构、模板引擎、框架和库、同服务器的消息通信等内容。

通过由浅入深的讲解,你将学会如何构建具有丰富交互以及优雅体验的JavaScript应用,书中同样提供了大量的示例代码,可以帮助你更深入的理解很多重要的概念。

本书中文版2012年4月份出版。

blog comments powered by Disqus

Table of Contents

  1. 引言
    1. 本书的目标读者
    2. 附属文件
    3. 代码约定
      1. jQuery 示例代码
    4. Holla
  2. MVC 和类
    1. 之初
    2. 增加架构
    3. 什么是MVC?
    4. 模型
    5. 视图
    6. 控制器
    7. 向模块化进军,创建类
    8. 给类添加方法
    9. 给库添加方法
    10. 基于原型的类继承
    11. 让类库可继承
    12. 函数调用
    13. 控制类库中的作用域
    14. 增加私有方法
    15. 提供“类”的类库
  3. 事件和监听
    1. 监听事件
    2. 事件顺序
    3. 取消事件
    4. 事件对象
    5. 事件库
    6. 切换上下文
    7. 委托事件
    8. 自定义事件
    9. 自定义事件和jQuery插件
    10. DOM无关(Non-DOM)的事件
  4. 模型和数据
    1. MVC 和命名空间
    2. 构建对象关系映射(ORM)
      1. 原型继承
      2. 添加ORM属性
      3. 持久化记录
    3. 全局统一标识(GUID)
      1. 给ORM添加GUID
    4. 寻址引用
    5. 装载数据
      1. 载入内联数据
      2. 通过Ajax载入数据
      3. JSONP
      4. 夸域请求的安全性
    6. 组装ORM
    7. 本地存储
    8. 给ORM添加本地存储
    9. 将新纪录提交至服务器
  5. 控制器和状态
    1. 模块模式
      1. 全局导入
      2. 全局导出
    2. 添加少量上下文
      1. 抽象出类库
      2. 文档加载完成后载入控制器
      3. 访问视图
      4. 委托事件
    3. 状态机
    4. 路由选择
      1. 利用URL里的hash
      2. 检测hash的变化
      3. 爬取Ajax
      4. 使用HTML5 History API
  6. 视图和模板
    1. 动态渲染视图
    2. 模板
      1. 模板工具箱
      2. 模板存储
    3. 绑定
      1. JLink
      2. 包扎模型
  7. 依赖管理
    1. Common.js
      1. 模块的声明
      2. 模块和浏览器
    2. 模块Loader
      1. Yabble
      2. RequireJS
    3. 包装模块
    4. 模块的按需加载
      1. LABjs
    5. FUBCs
  8. 使用文件
    1. 浏览器支持
    2. 获得文件信息
    3. 文件输入
    4. 拖拽
      1. 拖拽
      2. 释放拖拽
      3. 撤销默认拖拽
    5. 复制和粘贴
      1. 复制
      2. 粘贴
    6. 读文件
      1. 二进制大对象和文件切割
    7. 自定义浏览器按钮
    8. 上传文件
      1. Ajax 进度条
    9. jQuery拖拽上传
      1. 创建拖拽目标区域
      2. 上传文件
  9. 实时Web
    1. 实时历史记录
    2. WebSockets
      1. Node.js 和 Socket.IO
    3. 实时架构
    4. 感知速度
  10. 测试和调试
    1. 单元测试
      1. 断言
      2. QUnit
      3. Jasmine
    2. 驱动
    3. 傻瓜测试
      1. 使用僵尸进程
      2. 使用Ichabod
    4. 分布式测试
    5. 提供支持
    6. 监控工具
      1. Web 监控工具
      2. Firebug
    7. 控制台
      1. 控制台工具箱
    8. 使用debugger
    9. 分析网络请求
    10. Frofile和时间轴
  11. 部署
    1. 性能
    2. 缓存
    3. 代码压缩(Minify)
    4. 数据包压缩(GZIP)
    5. 使用 CDN
    6. 受众人群
    7. 源代码
  12. 库 - Spine
    1. 安装
      1. 实例化
      2. 类的扩展
      3. 上下文
    2. 事件
    3. 模型
      1. 抓取记录
      2. 模型的事件
      3. 校验
      4. 持久化
    4. 控制器
      1. 代理
      2. 元素
      3. 委托事件
      4. 控制器事件
      5. 全局事件
      6. 渲染模式
      7. 节点模式
    5. 创建联系人管理器
      1. 联系人模型
      2. 侧边栏控制器
      3. 联系人控制器
      4. App 控制器
  13. 库 - Backbone
    1. 模型
      1. 模型和属性
    2. 集合
      1. 控制集合顺序
    3. 试图
      1. 渲染视图
      2. 委托事件
      3. 绑定上下文
    4. 控制器
    5. 与服务器保持同步
      1. 向集合中添加记录
      2. 在服务器端发生了什么
      3. 自定义行为
    6. 创建任务列表
  14. 库 - JavascriptMVC
    1. 简介
      1. 万物皆插件
    2. StealJS - 依赖管理
      1. 装载非JavaScript资源
      2. 压缩
    3. 模块
      1. 对服务的封装
      2. 事件
      3. Getter / Setters ?
      4. Model.Lists
    4. 控制器
    5. 视图
    6. 把它们整合到一起
    7. 事件
    8. 创建任务列表
  15. 附录 - jQuery primer
    1. DOM 遍历
    2. DOM 操作
    3. 事件
    4. Ajax
    5. 做一个良民
    6. 扩展
    7. 创建一个 Growl jQuery 插件
  16. 附录 - CSS 扩展
    1. 变量
    2. 混合(Mixin)
    3. 嵌套规则
    4. 引入其他样式表
    5. 颜色
    6. 怎样才能用的更少?
      1. 通过命令行
      2. 通过 Rack
      3. 通过 JavaScript
      4. Less.app
  17. 附录 - CSS3 参考手册
    1. 前缀
    2. 颜色
    3. 圆角
    4. 阴影
    5. 文本阴影
    6. 渐变
    7. 多背景
    8. 选择器
      1. 第N个子节点
      2. 直接子节点
      3. 选择器取反
    9. 动画(transitions)
    10. 边框图片(border-image)
    11. 盒模型(box-sizing)
    12. 变换(transformations)
    13. 弹性盒模型
    14. 字体
    15. 优雅降级
      1. Modernizr
      2. Google Chrome Frame
    16. 构建一个布局