第三方JavaScript编程 C(美)维尼哲,(美)科瓦罗夫著
第三方JavaScript应用程序是自包含的应用组件,通常都是小脚本或插件,能够为Web站点增加功能。它们往往是由独立的组织或个人提供的,代码和文件都是来自于远程的Web地址。
《第三方JavaScript编程》由两位第三方应用程序开发领域的专家编写完成,通过丰富的示例和讲解引导读者掌握第三方Web开发的相关技术及如何开发运行在第三方环境的JavaScript代码。《第三方JavaScript编程》共10章,分别介绍了第三方JavaScript的定义、如何加载和执行代码、DOM渲染、第三方脚本和数据服务器之间的通信、跨窗口的消息传递方法、身份验证和cookie、第三方应用程序的安全性、JavaScript SDK的发展、性能、测试和调试。
《第三方JavaScript编程》并非JavaScript语言的初级读本,适用于有一定第三方代码开发经验的开发者以及致力于研究其如何在外部环境运行的开发者们阅读。
第1章 第三方JavaScript介绍 1
1.1 第三方JavaScript的定义 2
1.2 第三方JavaScript的
用法 4
1.2.1 嵌入式微件 6
1.2.2 分析和统计 8
1.2.3 Web服务API封装 9
1.3 开发一个简单的微件 13
1.3.1 服务端生成脚本 14
1.3.2 通过iframes分发微件 16
1.4 第三方开发的挑战 17
1.4.1 未知的上下文 17
1.4.2 共享环境 18
1.4.3 浏览器限制 19
1.5 总结 19
第2章 应用的分发和加载 20
2.1 配置第三方开发环境 21
2.1.1 发布者的测试页面 21
2.1.2 Web服务器 22
2.1.3 模拟多个域 23
2.2 加载初始的脚本 24
2.2.1 阻塞式脚本引入 25
2.2.2 使用async和defer无阻塞
加载脚本 26
2.2.3 动态脚本插入 28
2.3 初始脚本文件 29
2.3.1 window和undefined
混淆 30
2.3.2 基本应用程序流程 31
2.4 加载额外的文件 32
2.4.1 JavaScript文件 33
2.4.2 库 35
2.5 脚本参数传递 37
2.5.1 使用查询字符串 37
2.5.2 使用片段标识符 40
2.5.3 使用自定义数据属性 40
2.5.4 使用全局变量 42
2.6 获取应用数据 44
2.7 总结 45
第3章 HTML和CSS的渲染 46
3.1 输出HTML 47
3.1.1 使用document.write 47
3.1.2 追加到已知位置 48
3.1.3 追加多个微件 50
3.1.4 解耦渲染对象 52
3.2 为你的HTML添加
样式 53
3.2.1 使用内联样式 53
3.2.2 加载CSS文件 54
3.2.3 嵌入CSS到
JavaScript中 56
3.3 防御性的HTML和CSS 59
3.3.1 命名空间59
3.3.2 CSS的特殊性 60
3.3.3 过度设置CSS的特殊性 62
3.4 将内容嵌入到iframe中 65
3.4.1 没有设置src的iframe 66
3.4.2 外部iframe 68
3.4.3 样式继承 69
3.4.4 何时避免使用iframe 73
3.5 小结 74
第4章 与服务器通信 75
4.1 AJAX和浏览器的同源
策略 76
4.1.1 判定同源的规则 77
4.1.2 同源策略和脚本加载 78
4.2 带填充的JSON
(JSONP) 80
4.2.1 通过脚本元素加载
JSON 80
4.2.2 动态的回调函数 81
4.2.3 局限性和安全问题 84
4.3 子域名代理 85
4.3.1 使用document.domain更改
文档的源 87
4.3.2 使用子域代理实现跨域
通信 88
4.3.3 子域名代理与JSONP
相结合 91
4.3.4 Internet Explorer和子域
代理 94
4.3.5 安全隐患 95
4.4 跨源资源共享 95
4.4.1 发送简单的HTTP请求 96
4.4.2 使用CORS传输
Cookie 98
4.4.3 发送预检请求 99
4.4.4 浏览器支持 99
4.5 总结 100
第5章 跨域iframe通信 101
5.1 HTML5 window.postMessage
API 102
5.1.1 使用window.postMessage
发送信息 103
5.1.2 接收发送给窗口的
消息 104
5.1.3 浏览器的支持 106
5.2 降级技术 107
5.2.1 使用window.name发送
消息 108
5.2.2 使用URL片段标识符发送消息 111
5.2.3 使用Flash发送消息 113
5.3 使用easyXDM简化跨域
消息通信 116
5.3.1 加载并初始化easyXDM 116
5.3.2 使用easyXDM.Socket发送
简单信息 118
5.3.3 使用easyXDM.Rpc定义
JSON-RPC接口 119
5.4 总结 124
第6章 验证和会话 125
6.1 第三方Cookie 126
6.1.1 Sessions的设置和
读取 127
6.1.2 禁用第三方Cookie 128
6.1.3 Internet Explorer和
P3P头 129
6.1.4 检测cookies是否可用 131
6.2 设置第三方cookie 134
6.2.1 使用独立窗口 134
6.2.2 iframe的解决方案
(只针对Safari) 137
6.2.3 Chrome和Firefox中的单页面会话 140
6.3 会话安全 140
6.3.1 HTTPS和更安全的
cookie 141
6.3.2 多级身份认证 142
6.4 总结 144
第7章 安全性 145
7.1 Cookies,会话,和会话
窃取 146
7.2 跨站脚本 147
7.2.1 XSS攻击 148
7.2.2 CSS中的XSS漏洞 149
7.2.3 防止XSS对应用的
攻击 151
7.3 跨站请求伪造 153
7.3.1 XSRF攻击 154
7.3.2 JSON劫持 155
7.3.3 保护应用免受XSRF
攻击 156
7.4 发布者漏洞 158
7.4.1 发布者模拟 158
7.4.2 点击劫持 160
7.4.3 拒绝服务 162
7.5 总结 162
第8章 独特的框架 163
8.1 实现一个最基本的
SDK 165
8.1.1 初始化 166
8.1.2 异步加载 167
8.1.3 暴露公共方法 170
8.1.4 事件监听器 170
8.2 版本管理 173
8.2.1 URL版本管理 174
8.2.2 通过初始化进行版本
控制 176
8.3 封装Web服务的
APIs 178
8.3.1 在客户端访问Web服务
APIs 179
8.3.2 封装Camera Stork API 182
8.3.3 识别发布者 186
8.3.4 用户授权和OAuth 190
8.4 总结 191
第9章 性能 193
9.1 优化负荷 194
9.1.1 合并和压缩源代码 195
9.1.2 减少图像请求 196
9.1.3 缓存文件 198
9.1.4 推迟HTTP请求 199
9.2 JavaScript优化 204
9.2.1 浏览器内部:UI线程,重绘和回流 205
9.2.2 控制耗性能的调用:throttle和debounce函数 206
9.2.3 使用setTimeout延迟
计算 208
9.3 被感知的性能 210
9.3.1 对用户的操作保持
乐观 211
9.3.2 在文档就绪之前
渲染 212
9.4 总结 213
第10章 调试和测试 215
10.1 调试 216
10.1.1 在生产环境中使用开发
环境的代码 218
10.1.2 单步执行代码 223
10.2 测试 227
10.2.1 单元测试、集成测试和
回归测试 228
10.2.2 使用QUnit编写回归
测试 230
10.2.3 使用Hiro写回归
测试 233
10.3 总结 236
0 条评论