内容简介
前言
绪论
第一部分 构建你的应用
第1章 构建Save The Child应用
先考虑移动
引入Balsamiq Mockups
项目委托人与Web设计师交流
创建第一个原型图
将原型图变成原型
单页面应用
运行WebStorm的代码示例
第一个原型
主页面JavaScript
页脚部分
捐赠部分
增加视频
增加HTML5视频元素
嵌入YouTube视频
增加地理定位支持
地理定位基础
与Google Maps集成
使用Modernizr检测浏览器特性
Google Maps的搜索和多个标记
小结
第2章 使用Ajax和JSON
理解Ajax
了解JSON
使用Ajax
从服务器获取数据
Ajax:优点和缺点
从HTML文件填充州和国家
使用JSON
从JSON文件填充州和国家
JSON中使用数组
使用Ajax和JSON加载慈善活动
在CMS中使用JSON
用Java处理JSON
压缩JSON
为Save The Child增加图表
用画布元素增加图表
使用SVG增加图表
使用JSONP从其他服务器加载数据
Beer和JSONP
小结
第3章 jQuery库介绍
jQuery入门
Hello World
使用选择器和过滤器
用JSFiddle测试jQuery代码
过滤元素
处理事件
使用方法on()关联事件处理器和元素
委托事件
结合使用Ajax和jQuery
处理简写方法
使用jQuery编写Save The Child
登录和捐赠
使用jQuery Ajax加载HTML州和国家
使用jQuery Ajax加载JSON州和国家
提交捐赠表单
使用jQuery插件
使用插件验证捐赠表单
增加图像滑动条
小结
第二部分 企业相关问题
第4章 用Ext JS框架开发Web应用
JavaScript框架研究
选择使用Ext JS
下载和安装Ext JS
熟悉Ext JS和工具
创建Hello World的第一个版本
用Sencha CMD工具生成应用
选择Ext JS发布版本
声明、加载和实例化类
最佳实践:MVC
研究组件生命周期
处理事件
指定布局
用Ext JS开发Save The Child
建立Eclipse IDE和Apache Tomcat
运行Save The Child UI的上半部分
完成Save The Child
小结
第5章 企业开发人员选择的生产力工具
使用Node.js、V8和npm
利用Grunt自动完成
分析最简单的Gruntfile
使用Grunt运行JSHint检查
监视文件改变
使用Bower
使用Yeoman
使用Ext JS和CDB完成高效企业Web开发
Ext JS MVC应用搭建
生成一个CRUD应用
数据分页
小结
第6章 模块化大型JavaScript项目
模块化基础
模块化探索
模块模式
CommonJS
异步模块定义
统一模块定义
ECMAScript 6模块
将SaveThe Child应用划分为模块
RequireJS配置:config.js
编写AMD模块
按需加载模块
使用RequireJS插件
使用RequireJS优化器
利用中介者模式实现松耦合模块间通信
小结
第7章 使用JavaScript的测试驱动开发
为什么要测试?
测试基础
单元测试
集成测试
功能测试
负载测试
测试驱动开发
使用QUnit实现TDD
结合QUnit建立Grunt
使用Jasmine的行为驱动开发
多浏览器测试
测试DOM
使用TDD构建Save The Child应用
建立ExtJS应用测试工具
测试模型
测试控制器
测试视图
建立IDE完成TDD
小结
第8章 将HTTP升级到WebSocket
使用HTTP实现近实时应用
轮询
长轮询
HTTP流模式
实现服务器发送事件
WebSocket API介绍
WebSocket接口
客户端API
使用WebSocket框架
Portal
Atmosphere
选择应用级消息格式
CSV
XML
JSON
Google协议缓冲区
结合代理使用WebSocket
为Save The Child增加拍卖功能
使用Chrome开发者工具监视WebSocket流量
使用Wireshark监听WebSocket帧
创建SaveThe Child拍卖协议
小结
第9章 Web应用安全介绍
HTTP与HTTPS
认证和密码
基本认证和摘要认证
单点登录
处理密码
授权
基于Oauth的认证和授权
使用OpenID Connect和JSON Web Token实现联合身份
OAuth 2.0主要组成
Save The Child与OAuth
最大安全风险
注入
跨站点脚本
法规符合性和企业安全
小结
第三部分 响应式Web设计和移动设备
第10章 响应式设计:通用网站设计
一个版本还是两个版本?
有多少用户代理
重返原型设计
CSS媒体查询
多少个断点?
流网格
从绝对大小转向相对大小
窗口作为网格
响应式CSS:好消息
建立响应式Save The Child应用
流媒体
小结
第11章 jQuery Mobile
获得jQuery Mobile
组织代码
查看移动设备上的页面
jQuery Mobile中的样式
增加页面导航
增加持久工具条
使用jQuery Mobile实现Save The Child
建立移动版本原型
项目结构和导航
部分代码段
小结
第12章 Sencha Touch
Sencha Touch介绍
完成代码生成和发布
构造UI
容器
使用Sencha Touch实现Save The Child
构建应用
Application对象
主视图
控制器
Save The Child中的其他视图
存储库和模型
处理水平模式
jQuery Mobile与Sencha Touch比较
第13章 混合移动应用
原生应用
原生应用与Web应用
混合应用
Cordova和PhoneGap
Titanium
最后结论
PhoneGap工作流介绍
创建另一个Hello World
在iOS设备上测试应用
安装更多本地SDK
使用Adobe PhoneGap Build服务
发布移动应用
使用PhoneGap实现Save The Child
使用PhoneGap打包任意HTML5应用
为Save The Child增加相机访问
为照片提供服务器端支持
小结
第14章 后记
HTML5不是玫瑰花园
Dart:一种新兴语言
HTML5正当时
附录A 部分HTML5 API
附录B 运行代码示例和IDE