基于MVC的JavaScript Web富应用开发

基于MVC的JavaScript Web富应用开发
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , (亚历克斯·麦卡劳) ,
2016-11
版次: 01
ISBN: 9787121301797
定价: 59.00
装帧: 平装
开本: 16开
纸张: 其他
页数: 308页
正文语种: 简体中文
  • 在琳琅满目的Web富客户端应用实现方式中,JavaScript在其中巧妙地穿针引线,扮演着"黏合剂”的作用。JavaScript与各种浏览器插件技术(Silverlight、ActiveX、Flash、Applet)均拥有互操作能力,无论这种插件技术是主流的、还是生僻的,是传统的、还是现代的。  JavaScript是唯一不需安装任何插件,便被各大主流Web浏览器支持的动态脚本,可谓拥有天然的跨平台性。未来之RIA,必是以JavaScript为核心! 李晶,花名“拔赤”,阿里旅行前端工程师,具有多年前端开发经验,在团队协作、框架开发等方面有深入研究。 曾经参与淘宝彩票、淘宝首页、阿里旅行等项目开发。热爱分享,喜欢折腾。《JavaScript **指南(第六版)》、《编写可维护的JavaScript》译者。张散集,原淘宝前端工程师,主要从事技术管理,现在是美团技术主管,热爱前端新技术的推广与应用。《JavaScript **指南(第六版)》译者。 Alex MacCaw是一名Ruby/JavaScript程序员,在开源社区中很有名望,是Spine框架的作者,开发过Taskforce、Socialmod等大型开源项目,同时活跃在纽约、旧金山和柏林的各大Ruby/Rails会议。 目录
    第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
  • 内容简介:
    在琳琅满目的Web富客户端应用实现方式中,JavaScript在其中巧妙地穿针引线,扮演着"黏合剂”的作用。JavaScript与各种浏览器插件技术(Silverlight、ActiveX、Flash、Applet)均拥有互操作能力,无论这种插件技术是主流的、还是生僻的,是传统的、还是现代的。  JavaScript是唯一不需安装任何插件,便被各大主流Web浏览器支持的动态脚本,可谓拥有天然的跨平台性。未来之RIA,必是以JavaScript为核心!
  • 作者简介:
    李晶,花名“拔赤”,阿里旅行前端工程师,具有多年前端开发经验,在团队协作、框架开发等方面有深入研究。 曾经参与淘宝彩票、淘宝首页、阿里旅行等项目开发。热爱分享,喜欢折腾。《JavaScript **指南(第六版)》、《编写可维护的JavaScript》译者。张散集,原淘宝前端工程师,主要从事技术管理,现在是美团技术主管,热爱前端新技术的推广与应用。《JavaScript **指南(第六版)》译者。 Alex MacCaw是一名Ruby/JavaScript程序员,在开源社区中很有名望,是Spine框架的作者,开发过Taskforce、Socialmod等大型开源项目,同时活跃在纽约、旧金山和柏林的各大Ruby/Rails会议。
  • 目录:
    目录
    第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
查看详情