出版社: 电子工业出版社
原作名: JavaScript Web Applications
译者: 李晶 / 张散集
出版年: 2012-5
页数: 282
定价: 59.00元
装帧: 平装
丛书: O'Reilly动物系列(中译本)
ISBN: 9787121109560
内容简介 · · · · · ·
《JavaScript Web 富应用开发》Developing JavaScript Web Applications是 Alex MacCaw 的新作(由O'Reilly出版发行),本书系统而深入的讲解了如何使用最前沿的Web技术构建下一代互联网富应用程序。作者 Alex MacCaw 是一名Ruby/JavaScript 程序员,在开源社区中很有名望,是Spine框架的作者,同时活跃在纽约、旧金山和柏林的各大 Ruby/Rails 论坛。除了作为一名工程师,他还喜欢带着他的尼康D90和冲浪板环游世界。
有赖于强大的JavaScript引擎以及CSS3和HTML5新技术,如今的JavaScript Web 富应用的用户体验已经可以和桌面系统相媲美。关键是如何平滑的将服务器端的复杂度移植到客户端,这并不容易做到。这本书将专注于讲述如何构建“优雅又不...
《JavaScript Web 富应用开发》Developing JavaScript Web Applications是 Alex MacCaw 的新作(由O'Reilly出版发行),本书系统而深入的讲解了如何使用最前沿的Web技术构建下一代互联网富应用程序。作者 Alex MacCaw 是一名Ruby/JavaScript 程序员,在开源社区中很有名望,是Spine框架的作者,同时活跃在纽约、旧金山和柏林的各大 Ruby/Rails 论坛。除了作为一名工程师,他还喜欢带着他的尼康D90和冲浪板环游世界。
有赖于强大的JavaScript引擎以及CSS3和HTML5新技术,如今的JavaScript Web 富应用的用户体验已经可以和桌面系统相媲美。关键是如何平滑的将服务器端的复杂度移植到客户端,这并不容易做到。这本书将专注于讲述如何构建“优雅又不失高水准”(state of the art)的JavaScript应用,包括软件架构、模板引擎、框架和库、同服务器的消息通信等内容。
通过由浅入深的讲解,你将学会如何构建具有丰富交互以及优雅体验的JavaScript应用,书中同样提供了大量的示例代码,可以帮助你更深入的理解很多重要的概念。
揭开MVC的神秘面纱,教你如何设计合理的架构以及处理应用内部模块之间的依赖
介绍模板引擎和数据绑定
讲解远程数据加载、第二代Ajax以及跨域请求
利用WebSockets和Node构建实时应用
拖拽上传文件以及上传进度提示
讲解主流的库和框架,包括jQuery、JavaScriptMVC以及Backbone
编写测试用例,并使用控制台工具来调试你的应用
部署应用的最佳实践,比如缓存机制和代码压缩等
作者简介 · · · · · ·
作者简介
Alex MacCaw是一名Ruby/JavaScript程序员,在开源社区中很有名望,是Spine框架的作者,开发过Taskforce,Socialmod等大型开源项目,同时活跃在纽约、旧金山和柏林的各大Ruby/Rails会议。
目录 · · · · · ·
第1章 MVC和类 ............................................................1
最初 .........................................................................................................................1
增加结构 ..................................................................................................................2
什么是MVC ............................................................................................................2
模型 ..................................................................................................................3
· · · · · · (更多)
第1章 MVC和类 ............................................................1
最初 .........................................................................................................................1
增加结构 ..................................................................................................................2
什么是MVC ............................................................................................................2
模型 ..................................................................................................................3
视图 ..................................................................................................................4
控制器 ..............................................................................................................5
向模块化进军,创建类 ............................................................................................6
给类添加函数...........................................................................................................7
给“类”库添加方法 ...............................................................................................8
基于原型的类继承 .................................................................................................10
给“类”库添加继承 ............................................................................................. 11
函数调用 ................................................................................................................12
控制“类”库的作用域 ..........................................................................................15
添加私有函数.........................................................................................................17
“类”库 ..................................................................................................................18
第2章 事件和监听 ........................................................21
监听事件 ................................................................................................................21
事件顺序 ................................................................................................................22
取消事件 ................................................................................................................23
事件对象 ................................................................................................................23
事件库 ....................................................................................................................25
切换上下文 ............................................................................................................26
委托事件 ................................................................................................................26
自定义事件 ............................................................................................................27
自定义事件和jQuery 插件 .....................................................................................28
DOM 无关事件 ......................................................................................................30
第3章 模型和数据 ........................................................33
MVC 和命名空间 ...................................................................................................33
构建对象关系映射(ORM) ...................................................................................34
原型继承 ........................................................................................................35
添加ORM 属性 ..............................................................................................36
持久化记录.....................................................................................................37
增加ID 支持 ..........................................................................................................39
寻址引用 ................................................................................................................40
装载数据 ................................................................................................................41
直接嵌套数据 .................................................................................................42
通过Ajax 载入数据 ........................................................................................42
JSONP ............................................................................................................46
跨域请求的安全性 .........................................................................................46
向ORM 中添加记录 ..............................................................................................47
本地存储数据.........................................................................................................47
给ORM 添加本地存储 ..........................................................................................49
将新记录提交给服务器 ..........................................................................................51
第4章 控制器和状态 .....................................................53
模块模式 ................................................................................................................54
全局导入 ........................................................................................................54
全局导出 ........................................................................................................54
添加少量上下文 .....................................................................................................55
抽象出库 ........................................................................................................56
文档加载完成后载入控制器 ..........................................................................58
访问视图 ........................................................................................................59
委托事件 ........................................................................................................61
状态机 ....................................................................................................................63
路由选择 ................................................................................................................65
使用URL 中的hash .......................................................................................65
检测hash 的变化 ............................................................................................66
抓取Ajax .......................................................................................................67
使用HTML5 History API ...............................................................................68
第5章 视图和模板 ........................................................71
动态渲染视图.........................................................................................................71
模板 .......................................................................................................................73
模板Helpers ...................................................................................................75
模板存储 ........................................................................................................75
绑定 .......................................................................................................................77
模型中的事件绑定 .........................................................................................78
第6章 依赖管理 ...........................................................81
CommonJS .............................................................................................................82
模块的声明.....................................................................................................83
模块和浏览器 .................................................................................................83
模块加载器 ............................................................................................................84
Yabble ............................................................................................................84
RequireJS .......................................................................................................85
包装模块 ................................................................................................................87
模块的按需加载 .....................................................................................................88
LABjs .............................................................................................................89
无交互行为内容的闪烁(FUBC) ..........................................................................89
第7章 使用文件 ...........................................................91
浏览器支持 ............................................................................................................91
获取文件信息.........................................................................................................92
文件输入 ................................................................................................................92
拖曳 .......................................................................................................................93
拖曳 ................................................................................................................94
释放拖曳 ........................................................................................................96
撤销默认的Drag/Drop ...................................................................................97
复制和粘贴 ............................................................................................................97
复制 ................................................................................................................98
粘贴 ................................................................................................................99
读文件 .................................................................................................................. 100
二进制大文件和文件切割 ............................................................................ 101
自定义浏览器按钮 ............................................................................................... 102
上传文件 .............................................................................................................. 102
Ajax 进度条 .................................................................................................. 104
jQuery 拖曳上传 .................................................................................................. 106
创建拖曳目标区域 ....................................................................................... 106
上传文件 ...................................................................................................... 107
第8章 实时Web .........................................................109
实时Web 的发展历史 .......................................................................................... 109
WebSocket ............................................................................................................ 110
Node.js 和Socket.IO .................................................................................... 114
实时架构 .............................................................................................................. 116
感知速度 .............................................................................................................. 117
第9章 测试和调试 ......................................................119
单元测试 .............................................................................................................. 121
断言 .............................................................................................................. 121
QUnit ............................................................................................................ 122
Jasmine ......................................................................................................... 126
驱动 ..................................................................................................................... 128
无界面的测试....................................................................................................... 131
Zombie ......................................................................................................... 132
Ichabod ......................................................................................................... 134
分布式测试 .......................................................................................................... 135
提供支持 .............................................................................................................. 136
调试工具 .............................................................................................................. 136
Web Inspector ............................................................................................... 136
Firebug ......................................................................................................... 138
控制台 .................................................................................................................. 139
控制台函数................................................................................................... 140
使用JavaScript 调试器 ........................................................................................ 141
分析网络请求....................................................................................................... 143
Profile 和函数运行时间 ....................................................................................... 144
第10章 部署 ..............................................................147
性能 ..................................................................................................................... 147
缓存 ..................................................................................................................... 148
源码压缩(Minification) ..................................................................................... 150
Gzip 压缩 ............................................................................................................. 151
使用CDN ............................................................................................................. 152
审查工具 .............................................................................................................. 153
外部资源 .............................................................................................................. 154
第11章 Spine类库 .....................................................155
设置 ..................................................................................................................... 156
类 ......................................................................................................................... 156
实例化 .......................................................................................................... 156
类扩展 .......................................................................................................... 157
上下文 .......................................................................................................... 158
事件 ..................................................................................................................... 159
模型 ..................................................................................................................... 160
获取记录 ...................................................................................................... 161
模型事件 ...................................................................................................... 162
校验 .............................................................................................................. 163
持久化 .......................................................................................................... 163
控制器 .................................................................................................................. 165
代理 .............................................................................................................. 166
元素 .............................................................................................................. 167
委托事件 ...................................................................................................... 167
控制器事件................................................................................................... 168
全局事件 ...................................................................................................... 168
渲染模式 ...................................................................................................... 169
元素模式 ...................................................................................................... 169
构建联系人管理应用 ........................................................................................... 171
联系人模型................................................................................................... 172
侧边栏控制器 ............................................................................................... 173
联系人控制器 ............................................................................................... 175
应用程序控制器 ........................................................................................... 178
第12章 Backbone类库 ...............................................181
模型 ..................................................................................................................... 182
模型和属性................................................................................................... 182
集合 ..................................................................................................................... 184
控制集合的内部顺序 .................................................................................... 185
视图 ..................................................................................................................... 185
渲染视图 ...................................................................................................... 186
委托事件 ...................................................................................................... 187
绑定和上下文 ............................................................................................... 187
控制器 .................................................................................................................. 188
与服务器的同步 ................................................................................................... 190
填充集合 ...................................................................................................... 192
服务器端 ...................................................................................................... 192
自定义行为................................................................................................... 193
构建To-Do 列表应用 ........................................................................................... 195
第13章 JavaScriptMVC类库 ......................................203
设置 ..................................................................................................................... 204
Class ..................................................................................................................... 204
实例化 .......................................................................................................... 205
调用基类的方法 ........................................................................................... 205
代理 .............................................................................................................. 205
静态继承 ...................................................................................................... 206
自省 .............................................................................................................. 206
一个模型的例子 ........................................................................................... 207
模型 ..................................................................................................................... 207
属性和可观察 ............................................................................................... 208
扩展模型 ...................................................................................................... 210
Setter ............................................................................................................ 210
Defaults ........................................................................................................ 211
辅助方法 ...................................................................................................... 211
服务封装 ...................................................................................................... 212
类型转换 ...................................................................................................... 215
CRUD 事件 .................................................................................................. 216
在视图中使用客户端模板 .................................................................................... 216
基本用法 ...................................................................................................... 217
jQuery 修改器 .............................................................................................. 217
用Script 标签加载 ....................................................................................... 217
$.View 和子模板 .......................................................................................... 218
延时对象 ...................................................................................................... 218
打包、预加载和性能 .................................................................................... 219
$.Controller :jQuery 插件工厂 ............................................................................ 220
概览 .............................................................................................................. 222
控制器实例化 ............................................................................................... 222
事件绑定 ...................................................................................................... 223
模板动作 ...................................................................................................... 224
大综合:一个抽象的CRUD 列表 ........................................................................ 225
附录A jQuery基础 .....................................................227
附录B CSS扩展 .........................................................239
附录C CSS3参考 .......................................................245
索引 ...........................................................................267
· · · · · · (收起)
原文摘录 · · · · · · ( 全部 )
-
The mistake developers often make is creating applications with a lot of interdependency, with huge linear JavaScript files generating a slew of HTML tags. (查看原文) —— 引自第2页 -
Event-based programming is very powerful because it decouples your application’s architecture, leading to better self-containment and maintainability. (查看原文) —— 引自第27页
> 全部原文摘录
丛书信息
· · · · · ·
喜欢读"基于MVC的JavaScript Web富应用开发"的人也喜欢的电子书 · · · · · ·
喜欢读"基于MVC的JavaScript Web富应用开发"的人也喜欢 · · · · · ·
基于MVC的JavaScript Web富应用开发的书评 · · · · · · ( 全部 22 条 )

远低于期望值,没学到什么东西。
这篇书评可能有关键情节透露
书里拼写错误较多,多在讲他的Spine框架如何写的,跟产品文档似的,但比文档强一点,没学到什么东西,远低于期望值,看到后边说Spine、Backbone、JavaScript MVC的地方就跳着看了,算是我看过的比较差的书。 (展开)

2年了,希望能出第二版
> 更多书评 22篇
论坛 · · · · · ·
作者在写书的这一年还干了这些事 | 来自我 | 3 回应 | 2012-10-08 12:46:34 |
这本书的其他版本 · · · · · · ( 全部2 )
-
O'Reilly Media (2011)8.1分 50人读过
在哪儿借这本书 · · · · · ·
以下书单推荐 · · · · · · ( 全部 )
- Web前端技术|2015年以前 (3nfz)
- 书单-编程-前端 (LZX)
- Full Stack Web Developer (小镇)
- 前端开发相关书籍 (mockee)
- IT 一级 信息技术(智力层次-实用性) 1.1.1 (ajian005)
谁读这本书? · · · · · ·
二手市场
· · · · · ·
订阅关于基于MVC的JavaScript Web富应用开发的评论:
feed: rss 2.0
0 有用 NetPuter 2013-04-22 20:01:28
JS 进阶必读。
1 有用 震怒的香蕉蛋挞 2015-12-31 11:36:37
框架没仔细看
0 有用 Clyde.L 2011-11-15 11:09:32
Web Applications入门
0 有用 tyskin汩余不及 2012-09-23 14:12:24
前端的mvc 书不是很多 社区比较好
0 有用 贝塔 2012-07-03 00:14:01
1. 看到inline被翻译成行内就无语了; 2. 08年在IBM就用Dojo做了这里说的几乎所有事情
0 有用 芒可猫 2022-06-14 16:01:02
@2020-03-28 00:28:45
0 有用 我每首说唱拿出 2022-04-06 03:10:34
一般吧
0 有用 IMMAX 2022-01-18 18:55:35
早些时间这得是必读书。现在规范好起来了。顺便js很好,但真是坏文明。
0 有用 便型金刚 2020-03-20 22:16:18
随手搜到了,标记一下,多年以前看的
0 有用 十三~ 2019-04-11 19:45:42
没用