第1章 AJAX概述 1
1.1 对AJAX应用程序的需求 1
1.2 实现多功能Web应用程序 2
1.3 谁会从AJAX中受益 3
1.3.1 最终用户利益所在 3
1.3.2 开发人员利益所在 4
1.4 AJAX的技术 7
1.4.1 JavaScript Library和AJAX 7
1.4.2 Initiator组件 8
1.4.3 JavaScript组件 8
1.4.4 Web服务组件 11
1.4.5 动态HTML组件 11
1.5 其他AJAX库 12
1.6 用AJAX创建一个简单的Web页面 13
1.7 AJAX的功能 16
1.8 本章小结 17
第2章 ASP.NET 3.5和AJAX 19
2.1 ASP.NET 3.5带来的许多特性 19
2.1.1 客户端技术 20
2.1.2 服务器端技术 21
2.1.3 用ASP.NET AJAX进行开发 22
2.2 ASP.NET AJAX应用程序 22
2.2.1 建立未使用AJAX的ASP.NET简单页面 25
2.2.2 建立使用AJAX的ASP.NET页面 27
2.3 ASP.NET AJAX的服务器端控件 33
2.3.1 ScriptManager控件 33
2.3.2 ScriptManagerProxy控件 36
2.3.3 UpdatePanel控件 37
2.3.4 Timer控件 48
2.3.5 UpdateProgress控件 50
2.4 使用多个UpdatePanel控件 54
2.5 客户端页面请求的生命周期 57
2.6 取消请求 60
2.7 检测错误 61
2.8 使用更新 62
2.9 本章小结 65
第3章 ASP.NET开发人员的JavaScript 67
3.1 客户端的JavaScript 67
3.1.1 把JavaScript部署到浏览器 68
3.1.2 使用.NET包含客户端脚本 69
3.1.3 感知性能 72
3.1.4 脚本资源 74
3.2 JavaScript变量类型 75
3.3 语言不规则性 79
3.3.1 什么是相等性 80
3.3.2 Null、Undefined或其他类型 82
3.4 变量作用域 83
3.5 使用原型 87
3.6 关闭闭包 91
3.6.1 垃圾收集 94
3.6.2 DOM元素 94
3.6.3 避免内存泄漏 95
3.7 使用eval求值 96
3.8 处理异常 97
3.9 获取字符串的一部分 99
3.10 更好的JavaScript 100
3.10.1 减少脚本 100
3.10.2 使用缓存变量 100
3.11 本章小结 101
第4章 ASP.NET AJAX Client Library 103
4.1 浏览器页面生命周期 103
4.2 使用类型系统 105
4.2.1 声明命名空间 105
4.2.2 创建类 108
4.2.3 使用接口 114
4.2.4 定义枚举和标记 118
4.3 基类库 122
4.3.1 String类 122
4.3.2 日期和数字 123
4.3.3 数组 125
4.3.4 布尔值 129
4.4 Intellisense支持 129
4.5 侦错和调试 135
4.5.1 调试跟踪控制台 136
4.5.2 生成错误 137
4.5.3 验证参数 139
4.6 浏览器对象 140
4.7 Sys命名空间 142
4.8 本章小结 143
第5章 使用ScriptManager 145
5.1 无处不在的ScriptManager 145
5.1.1 添加脚本引用 147
5.1.2 通知回调 148
5.1.3 设置ScriptMode 149
5.1.4 嵌入脚本资源 149
5.1.5 脚本本地化 153
5.1.6 脚本全球化 156
5.1.7 服务引用 158
5.2 ASP.NET应用程序服务 161
5.2.1 窗体身份验证 161
5.2.2 角色服务 164
5.2.3 配置服务 166
5.3 错误处理 170
5.3.1 定制错误处理 170
5.3.2 处理异步回送错误 171
5.3.3 异步超时 172
5.4 定制脚本位置 172
5.4.1 设置脚本路径 172
5.4.2 解析脚本引用 173
5.4.3 ScriptManager代理 173
5.4.4 脚本压缩 173
5.4.5 移动脚本引用 173
5.5 脚本合并 174
5.5.1 确定要合并的脚本 175
5.5.2 手工合并脚本 176
5.5.3 脚本引用配置器 176
5.5.4 兼容性 177
5.6 本章小结 177
第6章 控制“后退”按钮 179
6.1 文档片段指示器 179
6.2 示例应用程序 179
6.3 启用部分更新功能 183
6.4 添加历史支持功能 185
6.5 状态编码 189
6.6 在客户端管理历史 190
6.7 客户端更新 190
6.8 添加历史支持功能 192
6.9 深度链接 195
6.10 本章小结 196
第7章 ASP.NET AJAX Toolkit 197
7.1 下载和安装 198
7.1.1 新的Visual Studio模板 199
7.1.2 给VS2008工具箱添加新控件 200
7.2 ASP.NET AJAX控件 201
7.2.1 ASP.NET AJAX Control Toolkit中的扩展器 203
7.2.2 AlwaysVisible ControlExtender 203
7.2.3 AnimationExtender 205
7.2.4 AutoCompleteExtender 207
7.2.5 CalendarExtender 210
7.2.6 CollapsiblePanelExtender 211
7.2.7 ConfirmButtonExtender和ModalPopupExtender 213
7.2.8 DragPanelExtender 216
7.2.9 DropDownExtender 217
7.2.10 DropShadowExtender 219
7.2.11 DynamicPopulateExtender 221
7.2.12 FilteredTextBoxExtender 224
7.2.13 HoverMenuExtender 226
7.2.14 ListSearchExtender 227
7.2.15 MaskedEditExtender和MaskedEditValidator 228
7.2.16 MutuallyExclusive CheckBoxExtender 231
7.2.17 NumericUpDownExtender 232
7.2.18 PagingBulletedListExtender 233
7.2.19 PopupControlExtender 234
7.2.20 ResizableControlExtender 236
7.2.21 RoundedCornersExtender 238
7.2.22 SliderExtender 239
7.2.23 SlideShowExtender 241
7.2.24 TextBoxWatermarkExtender 243
7.2.25 ToggleButtonExtender 245
7.2.26 UpdatePanelAnimationExtender 246
7.2.27 ValidatorCalloutExtender 248
7.3 ASP.NET AJAX Control Toolkit服务器控件 249
7.3.1 Accordion控件 249
7.3.2 CascadingDropDown 252
7.3.3 NoBot控件 254
7.3.4 PasswordStrength控件 255
7.3.5 Rating控件 256
7.3.6 TabContainer控件 257
7.4 本章小结 259
第8章 ASP.NET AJAX应用程序服务 261
8.1 用户身份验证 261
8.1.1 验证Windows用户 262
8.1.2 使用窗体验证模式 263
8.1.3 配置窗体验证模式 264
8.1.4 定制身份验证 267
8.1.5 使用JavaScript进行身份验证 268
8.1.6 访问用户状态 270
8.1.7 注销 271
8.1.8 用户Profile数据 272
8.1.9 定义Profile数据 273
8.1.10 访问Profile属性 275
8.1.11 在浏览器中访问Profile数据 277
8.1.12 重载Profile属性 278
8.1.13 加载Profile属性 280
8.1.14 存储Profile数据 282
8.2 管理用户角色 285
8.2.1 配置角色管理 285
8.2.2 客户端的角色检查 287
8.3 本章小结 288
第9章 ASP.NET AJAX联网功能 291
9.1 XMLHtttpRequest对象 291
9.1.1 XMLHttpRequest安全性 292
9.1.2 对象属性和方法 292
9.2 WebRequest调用 294
9.2.1 设置HTTP动词 295
9.2.2 设置超时限制 297
9.2.3 添加定制头 298
9.2.4 传递额外的数据 300
9.3 管理Web请求 302
9.3.1 默认超时设置 302
9.3.2 全局Web请求处理 305
9.3.3 WebRequestExecutor 306
9.4 传递数据 308
9.4.1 串行化 308
9.4.2 JSON格式 309
9.4.3 JSON串行化 312
9.4.4 PageMethods 317
9.4.5 使用日期 318
9.4.6 避免串行化 318
9.4.7 配置JSON串行化功能 319
9.4.8 定制串行化 320
9.5 本章小结 320
第10章 使用动画 323
10.1 使用动画控件 323
10.1.1 给单个控件制作动画 324
10.1.2 动画事件 326
10.1.3 动画动作 327
10.1.4 动画方法 327
10.2 动画动作的示例 328
10.2.1 在序列中使用<FadeOut>动作 328
10.2.2 使用<FadeIn>和<FadeOut> 330
10.2.3 移动和处理面板 332
10.3 本章小结 334
第11章 构建定制控件 335
11.1 构建客户端ASP.NET AJAX控件 335
11.1.1 扩展JavaScript 336
11.1.2 注册控件命名空间 338
11.1.3 创建控件构造函数 338
11.1.4 使用原型设计模式和JSON 340
11.1.5 定义控件属性 342
11.1.6 初始化控件和处理事件 345
11.1.7 定义控件方法 348
11.1.8 释放控件资源 358
11.1.9 注册定制控件类 359
11.1.10 创建客户端控件实例 360
11.2 构建服务器端ASP.NET AJAX控件 363
11.2.1 在服务器端控件中嵌入脚本 363
11.2.2 创建控件类 364
11.2.3 在ASP.NET页面中使用定制ASP.NET AJAX控件 369
11.2.4 用ASP.NET AJAX Control Toolkit创建控件扩展器 370
11.3 本章小结 376
第12章 Web Part 377
12.1 Web Part简介 377
12.2 建立没有AJAX的Web Parts页面 379
12.2.1 WebPartManager服务器控件 380
12.2.2 WebPartZone服务器控件 381
12.2.3 理解WebPartZone控件 382
12.2.4 允许用户改变页面模式 383
12.3 理解回送与Web Part 384
12.4 在Web Part页面上添加AJAX 386
12.5 用AJAX建立定制的Web Part 389
12.6 本章小结 395
第13章 本地化 397
13.1 什么是本地化 397
13.2 文化和区域 398
13.2.1 理解文化类型 398
13.2.2 理解ASP.NET文化 399
13.3 服务器端和客户端的本地化 402
13.3.1 服务器端的文化声明 402
13.3.2 终端用户如何在客户机上选择文化 403
13.4 客户端的文化细节 404
13.5 ASP.NET 3.5资源文件 408
13.5.1 使用本地资源 408
13.5.2 添加另一个语言资源文件 411
13.5.3 完成Default.aspx页面的建立 412
13.5.4 使用全局资源 415
13.6 资源编辑器 417
13.7 本地化带静态文件的脚本 417
13.8 嵌入JavaScript文件 420
13.9 本章小结 424
第14章 状态管理 425
14.1 理解.NET中的状态 425
14.2 理解会话 426
14.2.1 在进程中运行会话 427
14.2.2 在进程外运行会话 428
14.2.3 在SQL Server上维护会话 430
14.2.4 确定会话的状态 431
14.2.5 无Cookie的会话状态 431
14.3 使用Application对象 432
14.4 使用Cookie 435
14.4.1 使用Cookie的优点 435
14.4.2 使用Cookie的缺点 435
14.5 使用ViewState 437
14.5.1 开关ViewState功能 437
14.5.2 扩展ViewState 438
14.6 状态管理和ASP.NET AJAX 438
14.7 本章小结 441
第15章 测试和调试ASP.NET AJAX应用程序 443
15.1 调试和发布脚本 443
15.2 使用Error类 446
15.3 使用Sys.Debug类 449
15.3.1 执行跟踪操作 450
15.3.2 执行断言操作 453
15.4 启用Internet Explorer的调试功能 454
15.5 使用Firefox和Firebug调试 459
15.6 浏览ASP.NET AJAX请求和响应消息 461
15.6.1 使用Fiddler检测消息 462
15.6.2 使用Web Development Helper检测消息 464
15.7 本章小结 465
第16章 部署ASP.NET AJAX应用程序 467
16.1 安装Bits 467
16.1.1 ASP.NET AJAX 468
16.1.2 ASP.NET AJAX Control Toolkit 468
16.1.3 ASP.NET Futures CTP 469
16.2 Web场部署的准备 470
16.2.1 设置MachineKey 470
16.2.2 操作会话状态 470
16.3 使用不同平台 471
16.4 避免常见的配置问题 472
16.4.1 禁用调试 472
16.4.2 启用定制错误 473
16.4.3 禁用跟踪 474
16.4.4 设置部署模式 476
16.5 创建Web部署项目 476
16.6 部署之后 479
16.6.1 性能监控 479
16.6.2 控制AJAX特征 480
16.6.3 配置IIS7 482
16.7 使用脚本压缩 483
16.7.1 压缩动态脚本 483
16.7.2 压缩静态脚本 483
16.7.3 考虑使用共享脚本 484
16.7.4 不要改变版本路径 485
16.8 本章小结 485
附录 ASP.NET AJAX资源 487