征服Ajax Web2.0开发技术详解

征服Ajax Web2.0开发技术详解
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2006-06
版次: 1
ISBN: 9787115148049
定价: 56.00
装帧: 平装
开本: 其他
纸张: 胶版纸
页数: 521页
字数: 762千字
19人买过
  •   本书全面地介绍了Ajax技术。

      全书分为4个部分。第1部分介绍Ajax应用程序的主要特点,同时还通过“留言板”程序比较了Ajax技术和传统Web开发技术的不同之处。第2部分和第3部分讲解了Ajax的核心技术,包括JavaScript、XMLHttpRequest、DOM、XML、CSS以及服务器端编程。第4部分通过完整项目案例介绍Ajax的典型应用。

      本书适合网络编程人员、网页制作人员和网站建设者阅读。 第1部分 Ajax入门

    第1章 Ajax概述 3

    1.1 什么是Ajax 3

    1.1.1 Ajax的含义 3

    1.1.2 Ajax的发展历史 4

    1.1.3 使用Ajax能做什么 4

    1.2 Ajax:新的Web开发模式 7

    1.2.1 传统的Web开发模式 7

    1.2.2 基于Ajax的开发模式 9

    1.2.3 两种开发模式的比较 9

    1.3 Ajax中的关键技术 11

    1.3.1 JavaScript脚本语言 11

    1.3.2 XMLHttpRequest对象 11

    1.3.3 可扩展标记语言(XML) 12

    1.3.4 文档对象模型(DOM) 12

    1.3.5 级联样式表技术(CSS) 12

    1.4 使用Ajax带来的问题 13

    1.4.1 用户浏览习惯改变带来的问题 14

    1.4.2 对搜索引擎的不友好 14

    1.4.3 前进后退按钮的失效 14

    1.4.4 刷新定位问题 16

    1.4.5 性能问题 16

    1.4.6 开发难度的加大 16

    第2章 创建第一个Ajax应用:留言板 18

    2.1 环境设置、需求分析及数据库设计 18

    2.1.1 环境设置 18

    2.1.2 留言板的需求分析 20

    2.1.3 数据库设计 21

    2.2 使用传统的Web开发方式 21

    2.2.1 设计留言显示页面 21

    2.2.2 设计留言提交页面 23

    2.2.3 服务器端程序设计 24

    2.3 使用Ajax实现留言板 26

    2.3.1 一个页面就是一个程序 27

    2.3.2 客户端页面设计 27

    2.3.3 服务器端程序设计 27

    2.3.4 使用XMLHttpRequest将数据提交到服务器 29

    2.3.5 处理服务器返回的信息 31

    2.3.6 将留言内容立刻显示在页面 31

    第2部分 JavaScript精讲

    第3章 JavaScript语言基础 39

    3.1 JavaScript概述 39

    3.1.1 JavaScript简介 39

    3.1.2 JavaScript版本介绍 39

    3.1.3 JavaScript在Ajax中的作用 40

    3.2 JavaScript编辑和调试工具 42

    3.2.1 用什么编写JavaScript程序 42

    3.2.2 使用浏览器调试JavaScript程序 42

    3.2.3 使用Venkman调试JavaScript程序 44

    3.3 如何在HTML中工作 45

    3.3.1 标记:标识语言类型 45

    3.3.2 使用外部JavaScript文件 46

    3.3.3 嵌入HTML标记的JavaScript代码 47

    3.4 建立JavaScript表达式 47

    3.4.1 变量 47

    3.4.2 常量 48

    3.4.3 数据类型 49

    3.4.4 数据类型的转换 51

    3.4.5 JavaScript的语句结构 53

    3.4.6 可选的分号 54

    3.4.7 加入注释 55

    3.4.8 建立赋值表达式 56

    3.4.9 建立数字表达式 56

    3.4.10 使用字符串表达式 57

    3.4.11 使用比较表达式 58

    3.4.12 使用逻辑表达式 60

    3.4.13 使用逗号(,)表达式 62

    3.4.14 理解操作符的优先级 62

    第4章 流程控制和函数 64

    4.1 代码流程控制:条件语句和循环语句 64

    4.1.1 使用if语句进行条件判断 64

    4.1.2 使用if…else…处理条件不成立的情形 65

    4.1.3 使用条件运算符(?:) 66

    4.1.4 使用switch语句进行多重条件判断 66

    4.1.5 使用while循环 68

    4.1.6 使用do…while循环 69

    4.1.7 使用for循环 69

    4.1.8 break语句:立即跳出循环的执行 70

    4.1.9 continue语句:停止当前循环进入下一次循环 71

    4.2 使用函数 72

    4.2.1 什么是函数 72

    4.2.2 定义和调用函数 72

    4.2.3 给函数传递参数 74

    4.2.4 参数的值传递和引用传递 75

    4.2.5 使用return语句从函数返回值 76

    4.2.6 变量的作用范围:局部变量和全局变量 77

    4.2.7 使用递归函数 78

    4.3 使用JavaScript内部函数 79

    4.3.1 什么是内部函数 79

    4.3.2 使用eval函数来执行JavaScript代码 79

    4.3.3 使用parseInt和parseFloat函数将字符串转换为数字 80

    4.3.4 使用escape和unescape函数进行URL编码和解码 81

    4.3.5 使用isNaN和isFinite函数判断数字的类型 81

    第5章 对象和表单 82

    5.1 对象概述 82

    5.2 处理日期和时间:Date对象 82

    5.2.1 创建一个日期对象 82

    5.2.2 从Date对象中提取信息 83

    5.2.3 设置日期对象的值 85

    5.2.4 进行日期计算 85

    5.2.5 其他Date对象的方法 86

    5.3 进行数学运算:Math对象 87

    5.3.1 将一个小数四舍五入到指定位数 88

    5.3.2 使用随机函数Math.random() 89

    5.4 使用数组:Array对象 90

    5.4.1 创建一个数组 90

    5.4.2 使用数组元素 91

    5.4.3 使用多维数组 92

    5.4.4 使用数组的length属性 92

    5.4.5 使用数组对象的方法 94

    5.5 处理文本:String对象 95

    5.5.1 确定字符串的长度 96

    5.5.2 搜索和提取子字符串 96

    5.5.3 替换和匹配字符串 97

    5.5.4 字符串对象的其他方法 98

    5.6 对象的高级应用 98

    5.6.1 获取浏览器信息:使用navigator对象 98

    5.6.2 处理地址栏信息:location对象 100

    5.6.3 控制前进和后退:使用history对象 102

    5.6.4 文档操作初步:document对象 102

    5.6.5 使用with()语句简化对象访问 106

    5.7 事件机制 107

    5.7.1 什么是事件 107

    5.7.2 使用HTML标记创建事件处理程序 107

    5.7.3 使用对象的事件属性创建事件处理程序 108

    5.7.4 使用attachEvent和addEventListener方法绑定事件处理程序 109

    5.7.5 使用event对象获取事件信息 109

    5.7.6 使用event对象的属性 111

    5.8 表单编程入门 112

    5.8.1 使用form对象 112

    5.8.2 引用表单域 114

    5.8.3 表单域的通用属性 114

    5.8.4 表单域的通用方法 115

    5.8.5 表单域的通用事件 116

    5.9 使用文本域 117

    5.9.1 获取和设置文本域的内容 118

    5.9.2 使用defaultValue获得HTML标记中的value值 118

    5.9.3 使用select方法选中文本 119

    5.9.4 使用onselect事件处理用户的选中操作 119

    5.10 使用按钮类表单 119

    5.10.1 使用简单按钮 119

    5.10.2 使用复选框 119

    5.10.3 使用单选按钮 121

    5.11 使用下拉列表框 121

    5.11.1 使用value属性获取和设置下拉列表框的值 122

    5.11.2 使用length属性获取选项的个数 122

    5.11.3 使用selectedIndex属性获取当前选项的索引 122

    5.11.4 使用options属性获取选项集合 122

    5.11.5 使用option对象的value属性和text属性 123

    5.11.6 使用option对象的selected属性 123

    5.11.7 使用select对象的onchange事件 123

    5.11.8 为select对象添加一个选项 124

    5.11.9 从select对象中删除一个选项 124

    5.11.10 清空一个select对象 124

    5.11.11 替换一个选项 125

    3.10.12 下拉框实例:二级联动的下拉列表菜单 125

    5.12 执行表单验证 127

    第6章 JavaScript面向对象程序设计 129

    6.1 JavaScript中支持面向对象的基础 129

    6.1.1 用定义函数的方式定义类 129

    6.1.2 使用new操作符获得一个类的实例 129

    6.1.3 使用方括号([])引用对象的属性和方法 130

    6.1.4 动态添加、修改、删除对象的属性和方法 132

    6.1.5 使用大括号({})语法创建无类型对象 133

    6.1.6 prototype原型对象 134

    6.2 深入认识JavaScript中的函数 135

    6.2.1 概述 135

    6.2.2 认识函数对象(Function Object) 135

    6.2.3 函数对象和其他内部对象的关系 137

    6.2.4 将函数作为参数传递 139

    6.2.5 传递给函数的隐含参数:arguments 139

    6.2.6 函数的apply、call方法和length属性 140

    6.2.7 深入认识JavaScript中的this指针 141

    6.3 类的实现 142

    6.3.1 理解类的实现机制 142

    6.3.2 使用prototype对象定义类成员 143

    6.3.3 一种JavaScript类的设计模式 145

    6.4 公有成员、私有成员和静态成员 146

    6.4.1 实现类的公有成员 146

    6.4.2 实现类的私有成员 146

    6.4.3 实现静态成员 147

    6.5 使用for(…in…)实现反射机制 148

    6.5.1 什么是反射机制 148

    6.5.2 在JavaScript中利用for(…in…)语句实现反射 149

    6.5.3 使用反射来传递样式参数 149

    6.6 类的继承 150

    6.6.1 利用共享prototype实现继承 150

    6.6.2 利用反射机制和prototype实现继承 152

    6.6.3 prototype-1.3.1框架中的类继承实现机制 154

    6.7 实现抽象类 156

    6.7.1 抽象类和虚函数 156

    6.7.2 在JavaScript实现抽象类 156

    6.7.3 使用抽象类的示例 157

    6.8 事件设计模式 158

    6.8.1 事件设计概述 158

    6.8.2 最简单的事件设计模式 158

    6.8.3 给事件处理程序传递参数 159

    6.8.4 使自定义事件支持多绑定 162

    6.9 实例:使用面向对象思想处理cookie 163

    6.9.1 需求分析 163

    6.9.2 创建Cookie对象 163

    6.9.3 实现设置Cookie的方法 163

    6.9.4 实现取Cookie值的方法 164

    6.9.5 实现删除Cookie的方法 164

    第7章 JavaScript高级技术 166

    7.1 框架编程 166

    7.1.1 框架编程概述 166

    7.1.2 框架间的互相引用 166

    7.1.3 改变框架的载入页面 167

    7.1.4 引用其他框架内的JavaScript变量和函数 168

    7.2 使用cookie 169

    7.2.1 cookie概述 169

    7.2.2 设置cookie 170

    7.2.3 获取cookie的值 171

    7.2.4 给cookie设置终止日期 172

    7.2.5 删除cookie 173

    7.2.6 指定可访问cookie的路径 173

    7.2.7 指定可访问cookie的主机名 173

    7.2.8 综合示例:构造通用的cookie处理函数 174

    7.3 使用正则表达式 175

    7.3.1 正则表达式概述 175

    7.3.2 使用RegExp对象执行字符串模式匹配 177

    7.3.3 提取子字符串 178

    7.3.4 和字符串相关的操作 179

    7.4 使用window对象 180

    7.4.1 使用window.open方法新建窗口 180

    7.4.2 使用定时器实现JavaScript的延期执行或重复执行 181

    7.4.3 给定时器调用传递参数 184

    7.4.4 使用status和defaultStatus属性改变状态栏信息 185

    7.4.5 使用alert、prompt和confirm语句与用户进行交互 186

    7.5 异常处理 187

    7.5.1 异常处理概述 187

    7.5.2 使用try-catch-finally处理异常 187

    7.5.3 使用throw语句抛出异常 188

    第3部分 Ajax核心技术

    第8章 XMLHttpRequest对象详解 193

    8.1 概述 193

    8.1.1 什么是XMLHttpRequest对象 193

    8.1.2 XMLHttpRequest对象在Ajax中的作用 193

    8.2 使用XMLHttpRequest对象和服务器进行通信 194

    8.2.1 创建XMLHttpRequest对象 194

    8.2.2 使用open方法创建一个请求 195

    8.2.3 使用send方法发送一个请求 196

    8.2.4 使用onreadystatechange事件捕获请求的状态变化 196

    8.2.5 使用readyState属性判断请求状态 196

    8.2.6 使用status属性判断请求的结果 197

    8.2.7 使用responseText获得返回的文本 198

    8.2.8 使用responseXML属性获取XML文档 199

    8.2.9 使用abort方法取消一个请求 200

    8.2.10 XMLHttpRequest对象的其他属性和方法 201

    8.3 XMLHttpRequest对象使用示例 201

    8.3.1 用get方法检测用户名是否存在 201

    8.3.2 使用post方法向服务器提交数据 203

    8.3.3 实现服务器相关的二级联动菜单 204

    第9章 Ajax的基础架构:DOM模型 210

    9.1 概述 210

    9.1.1 什么是DOM模型 210

    9.1.2 DOM模型的组成部分 211

    9.1.3 DOM模型在Ajax开发中的作用 211

    9.1.4 DOM模型的发展 211

    9.1.5 DOM模型和DHTML的关系 211

    9.1.6 小结 212

    9.2 DOM结构模型 212

    9.2.1 理解DOM中的文档层次结构 212

    9.2.2 结点的概念 212

    9.2.3 结点的类型 213

    9.3 处理DOM中的结点 213

    9.3.1 直接引用结点 213

    9.3.2 间接引用结点 214

    9.3.3 获取结点信息 215

    9.3.4 处理属性结点 216

    9.3.5 处理文本结点 217

    9.3.6 因浏览器而异的空白结点 218

    9.3.7 使用innerHTML改变结点的内容 219

    9.4 改变文档的层次结构 220

    9.4.1 使用document.createElement方法创建元素结点 220

    9.4.2 使用document.createTextNode方法创建文本结点 220

    9.4.3 使用appendChild方法添加结点 220

    9.4.4 使用insertBefore方法插入子结点 221

    9.4.5 使用replaceChild方法取代子结点 222

    9.4.6 使用cloneNode方法复制结点 223

    9.4.7 使用removeChild方法删除子结点 223

    9.5 表格操作 224

    9.5.1 表格操作概述 224

    9.5.2 DOM1(DHTML)中表格对象的结构 226

    9.5.3 创建一个表格对象 226

    9.5.4 添加一行 226

    9.5.5 添加单元格 226

    9.5.6 引用单元格 228

    9.5.7 使用单元格对象 228

    9.5.8 删除行和单元格 228

    9.5.9 交换两行的位置 230

    9.5.10 交换两个单元格的位置 233

    9.5.11 生成表格的其他方法 234

    第10章 控制外观:CSS入门 235

    10.1 CSS概述 235

    10.1.1 什么是CSS 235

    10.1.2 使用CSS的优点 235

    10.1.3 CSS在Ajax开发中的作用 236

    10.2 使用CSS控制页面表现 238

    10.2.1 CSS的样式 238

    10.2.2 CSS基本语法 240

    10.2.3 使用标记选择器 240

    10.2.4 使用类型选择器 241

    10.2.5 使用id选择器 242

    10.2.6 使用层次选择器 243

    10.2.7 继承 244

    10.2.8 样式应用就近原则 244

    10.2.9 认识CSS中的盒模型 246

    10.2.10 设计合理的CSS结构 247

    10.3 使用JavaScript控制CSS 247

    10.3.1 通过style对象改变结点的CSS 247

    10.3.2 使用className属性指定结点样式 248

    10.4 使用IE Only的CSS滤镜 249

    10.4.1 CSS滤镜概述 249

    10.4.2 使用界面滤镜 250

    10.4.3 静态滤镜 254

    10.4.4 动态滤镜 258

    10.4.5 使用JavaScript控制CSS滤镜 261

    第11章 Ajax标准通信载体--XML语言 263

    11.1 XML概述 263

    11.1.1 一个简单的XML实例 263

    11.1.2 XML的基本概念 264

    11.1.3 XML在Ajax中的作用 265

    11.2 使用Javascript操作XML 265

    11.2.1 MSXML介绍 265

    11.2.2 在IE浏览器中创建XML片段 266

    11.2.3 在IE浏览器中解析XML文本 267

    11.2.4 使用Mozilla浏览器支持的DOM模型创建XML片段 268

    11.2.5 使用Mozilla浏览器支持的DOM模型解析XML片段 269

    11.2.6 基于Javascript的XML解析程序 270

    11.3 其他通信模式 271

    11.3.1 使用XML的问题 271

    11.3.2 使用纯文本 271

    11.3.3 使用HTML片段 271

    11.3.4 使用JSON 272

    第12章 服务器端编程 277

    12.1 服务器端程序在Ajax中的角色 277

    12.1.1 理解Ajax中的服务器端编程模式 277

    12.1.2 Ajax中服务器端程序设计的特点 277

    12.1.3 参数传递方式 278

    12.1.4 接口设计模式 278

    12.2 常用服务器端编程技术介绍 280

    12.2.1 JSP语言介绍 280

    12.2.2 PHP语言介绍 281

    12.2.3 ASP.NET介绍 281

    12.3 实现Ajax翻页效果 282

    12.3.1 翻页 282

    12.3.2 系统描述 282

    12.3.3 客户端设计:页面结构 282

    12.3.4 客户端设计:页面外观 283

    12.3.5 客户端设计:设计Ajax逻辑 283

    12.3.6 客户端设计:分页按钮 284

    12.3.7 服务器端设计:通过ASP.NET控件直接得到HTML代码 285

    12.3.8 服务器端设计:设计通用的分页标签生成器 285

    12.3.9 服务器端设计:处理用户的查询 286

    12.3.10 最终效果 290

    第13章 Ajax中的常见问题及解决方案 292

    13.1 跨浏览器问题 292

    13.1.1 JavaScript中错误信息的显示 292

    13.1.2 JavaScript中的eval函数能否使用apply方法 293

    13.1.3 DOM中使用getElementById获取指定id结点的引用 295

    13.1.4 DOM中的事件绑定语法 295

    13.1.5 DOM中事件顺序模型的不同 296

    13.1.6 CSS中使用!important提高属性优先级 298

    13.1.7 在CSS中使用IE浏览器不支持的属性实现浏览器选择性 299

    13.1.8 在CSS中使用反斜杠注释屏蔽IE5-Mac 299

    13.2 解决导航问题 300

    13.2.1 导航问题的由来 300

    13.2.2 利用URL存储状态信息 300

    13.2.3 利用Hash参数解决刷新问题 301

    13.2.4 解决浏览器的【前进】【后退】按钮失效问题 305

    13.3 搜索引擎问题 312

    13.3.1 Ajax程序不易被搜索引擎检索到 312

    13.3.2 使用冗余地址思路解决搜索引擎问题 313

    13.4 安全问题 313

    13.4.1 服务器端始终要作有效性验证 313

    13.4.2 避免拒绝服务攻击(DoS攻击) 315

    13.4.3 其他安全问题 315

    13.5 性能问题 316

    13.5.1 衡量JavaScript代码的运行事件 316

    13.5.2 因浏览器而异的字符串连接操作 316

    13.5.3 按需载入JavaScript代码 318

    13.5.4 压缩JavaScript代码 319

    第4部分 典型应用

    第14章 动态获取数据的树状菜单 323

    14.1 树状菜单概述 323

    14.1.1 什么是树状菜单 323

    14.1.2 使用无序列表标记(ul) 324

    14.1.3 使用CSS控制外观 324

    14.1.4 展开和折叠涉及的关键技术 326

    14.2 实现树状菜单的两种方式 326

    14.2.1 完全在客户端实现 326

    14.2.2 完全由服务器端实现 327

    14.2.3 基于Ajax的实现 328

    14.3 设计树状菜单的数据结构 328

    14.3.1 设计树结点接口类 328

    14.3.2 实现树结构的数据库设计 329

    14.3.3 最终树结构实现类 330

    14.3.4 服务端的数据处理 333

    14.3.5 静态树状菜单的实现 334

    14.4 动态获取数据的树状菜单 337

    14.4.1 什么时候需要动态获取数据 337

    14.4.2 服务器端的代码设计 337

    14.4.3 创建获取数据的方法 339

    14.4.4 处理取回数据的方法 340

    14.4.5 服务器端的请求处理方法 341

    第15章 RSS阅读器 343

    15.1 RSS概述 344

    15.1.1 什么是RSS 344

    15.1.2 一个简单的RSS 2.0示例 345

    15.1.3 元素说明 346

    15.1.4 元素说明 347

    15.2 阅读RSS模块程序设计 347

    15.2.1 客户端原理分析 347

    15.2.2 客户端代码设计 347

    15.2.3 创建RSSReader类 350

    15.2.4 服务器端代码设计 353

    15.2.5 创建LoadRSS类 355

    15.3 添加RSS模块程序设计 358

    15.3.1 客户端原理分析 358

    15.3.2 客户端代码设计 358

    15.3.3 服务器端代码设计 360

    15.3.4 数据库设计 361

    第16章 搜索提示(Suggest) 365

    16.1 搜索提示概述 365

    16.1.1 Google Suggest介绍 365

    16.1.2 搜索提示所带来的好处 366

    16.1.3 基本原理分析 366

    16.2 客户端代码 367

    16.2.1 客户端原理分析 367

    16.2.2 创建请求 368

    16.2.3 处理返回数据 369

    16.3 服务器端代码 370

    16.3.1 服务器端原理分析 370

    16.3.2 处理服务请求 371

    16.3.3 数据库设计 372

    第17章 基于Ajax的相册 374

    17.1 基本原理分析 374

    17.1.1 界面设计分析 374

    17.1.2 CSS设计分析 375

    17.1.3 图片放大原理分析 378

    17.1.4 动态更换皮肤 379

    17.2 Ajax程序设计 380

    17.2.1 原理分析 380

    17.2.2 创建XMLHttpRequest对象 380

    17.2.3 发送请求 381

    17.2.4 处理返回数据 382

    17.3 服务器端程序设计 383

    17.3.1 处理服务请求 383

    17.3.2 创建实体访问类 385

    17.3.3 数据库设计 386

    第18章 基于Ajax的聊天室程序 389

    18.1 聊天室概述 390

    18.1.1 聊天室程序所需要解决的问题 390

    18.1.2 传统聊天室的缺点 390

    18.1.3 使用Ajax技术的好处 391

    18.1.4 基本原理分析 391

    18.2 数据库设计 392

    18.2.1 数据库设计基本原理 392

    18.2.2 数据表设计 392

    18.2.3 创建表所对应的实体类 393

    18.3 客户端程序设计 395

    18.3.1 基本原理分析 395

    18.3.2 选择聊天室页面 396

    18.3.3 聊天室主页面 398

    18.3.4 调用初始化方法 401

    18.3.5 获得消息数据处理 402

    18.3.6 发送消息数据处理 403

    18.4 服务器端程序设计 404

    18.4.1 刷新时获得消息请求的处理 404

    18.4.2 发送消息请求的处理 407

    18.4.3 数据库连接工具类 408

    第19章 拖拽方式定制个性化主页 411

    19.1 系统概述 411

    19.1.1 系统目标:模仿Google ig 411

    19.1.2 系统预览 412

    19.1.3 系统构架 412

    19.2 用户登录模块 414

    19.2.1 原理分析 414

    19.2.2 客户端代码 415

    19.2.3 处理服务请求 416

    19.2.4 服务器端代码 417

    19.2.5 连接数据库 423

    19.3 小窗口初始化模块 425

    19.3.1 原理分析 425

    19.3.2 数据库设计 426

    19.3.3 访问数据库的实体类 426

    19.3.4 父类代码的实现 429

    19.3.5 创建欢迎小窗口 430

    19.3.6 创建新闻RSS小窗口 431

    19.3.7 创建书签小窗口 432

    19.4 个性化主页模块 433

    19.4.1 布局显示原理分析 433

    19.4.2 数据库设计 433

    19.4.3 创建访问数据库实体类 435

    19.4.4 客户端代码 439

    19.4.5 布局设置原理分析 441

    19.4.6 关闭窗口自动保存布局 441

    19.4.7 拖拽窗口自动保存布局 443

    19.4.8 服务器端代码 446

    19.5 拖拽原理分析 448

    19.5.1 拖拽原理分析 448

    19.5.2 释放原理分析 449

    19.5.3 通用的拖放类 450

    第20章 上传文件显示进度条 452

    20.1 上传文件概述 452

    20.1.1 上传文件的表单概述 452

    20.1.2 上传文件后的服务器端处理 453

    20.1.3 使用Apache的FlieUpload 455

    20.1.4 使用Session记录上传进度 456

    20.2 客户端实现 456

    20.2.1 客户端原理分析 456

    20.2.2 客户端代码 457

    20.2.3 客户端请求处理 458

    20.3 服务器端实现 459

    20.3.1 服务器端原理分析 459

    20.3.2 上传文件处理过程 460

    20.3.3 获取上传信息 462

    20.3.4 创建监听器类 464

    20.3.5 注册监听器类 466

    第21章 滑动显示分页 470

    21.1 滑动显示分页概述 470

    21.1.1 传统的分页显示 470

    21.1.2 滑动分页显示 471

    21.1.3 滑块基本原理 471

    21.2 客户端实现 473

    21.2.1 客户端基本原理 473

    21.2.2 客户端页面代码 473

    21.2.3 Javascript代码分析 475

    21.3 服务器端代码实现 477

    21.3.1 服务器端请求处理 477

    21.3.2 创建数据实体类 479

    21.3.3 数据库设计 480

    21.3.4 连接数据库的工具类 481

    第22章 仿Windows关机效果 484

    22.1 基本原理分析 484

    22.1.1 Windows关机效果分析 484

    22.1.2 网页中实现关机效果分析 485

    22.2 代码实现 487

    22.2.1 客户端代码 487

    22.2.2 客户端脚本 488

    22.2.3 封装lightbox类 490

    22.3 服务器端代码 492

    附录A JavaScript关键字和保留字 494

    A.1 关键字 494

    A.2 保留字 494

    附录B prototype-1.4.0框架详解 495

    B.1 基础工具类 495

    B.1.1 Prototype对象 495

    B.1.2 Class对象 496

    B.1.3 对Object类的扩展 497

    B.1.4 对Function类的扩展 498

    B.1.5 对Number类的扩展 499

    B.1.6 Try对象 500

    B.1.7 其他工具 500

    B.2 定时器类 500

    B.3 基础工具类 501

    B.3.1 $()方法 502

    B.3.2 对String类(字符串)的扩展 502

    B.3.3 Enumerable(可枚举)接口 503

    B.3.4 $A()函数 506

    B.3.5 对Array类(数组)的扩展 507

    B.3.6 新的哈希(Hash)对象 507

    B.3.7 使用$H()函数获取Hash对象 508

    B.3.8 新的ObjectRange类 508

    B.3.9 使用$R()方法快速创建ObjectRange对象 508

    B.4 Ajax模块 509

    B.4.1 Ajax对象 509

    B.4.2 Ajax.Responders对象 509

    B.4.3 Ajax.Base类 510

    B.4.4 Ajax.Request类 510

    B.4.5 Ajax.Updater类 511

    B.4.6 Ajax.PeriodicalUpdater类 512

    B.5 对文档操作的封装 512

    B.5.1 使用document.getElementsByClassName方法 512

    B.5.2 Element对象 513

    B.5.3 Toggle对象 514

    B.5.4 Insertion命名空间 514

    B.5.5 Element.ClassNames类 515

    B.6 表单操作 516

    B.6.1 Field对象 516

    B.6.2 Form对象 516

    B.6.3 Form.Element对象 516

    B.6.4 Form.Element.Serializers对象 517

    B.6.5 使用$F()函数获取表单域的值 517

    B.7 Observer模式框架 517

    B.7.1 Abstract.TimedObserver类 517

    B.7.2 Form.Element.Observer类 518

    B.7.3 Form.Observer类 518

    B.7.4 Abstract.EventObserver类 518

    B.7.5 Form.Element.EventObserver类 519

    B.7.6 Form.Observer类 519

    B.8 事件处理:对Event对象的扩展 519

    B.9 结点的位置处理:Position对象 520
  • 内容简介:
      本书全面地介绍了Ajax技术。

      全书分为4个部分。第1部分介绍Ajax应用程序的主要特点,同时还通过“留言板”程序比较了Ajax技术和传统Web开发技术的不同之处。第2部分和第3部分讲解了Ajax的核心技术,包括JavaScript、XMLHttpRequest、DOM、XML、CSS以及服务器端编程。第4部分通过完整项目案例介绍Ajax的典型应用。

      本书适合网络编程人员、网页制作人员和网站建设者阅读。
  • 目录:
    第1部分 Ajax入门

    第1章 Ajax概述 3

    1.1 什么是Ajax 3

    1.1.1 Ajax的含义 3

    1.1.2 Ajax的发展历史 4

    1.1.3 使用Ajax能做什么 4

    1.2 Ajax:新的Web开发模式 7

    1.2.1 传统的Web开发模式 7

    1.2.2 基于Ajax的开发模式 9

    1.2.3 两种开发模式的比较 9

    1.3 Ajax中的关键技术 11

    1.3.1 JavaScript脚本语言 11

    1.3.2 XMLHttpRequest对象 11

    1.3.3 可扩展标记语言(XML) 12

    1.3.4 文档对象模型(DOM) 12

    1.3.5 级联样式表技术(CSS) 12

    1.4 使用Ajax带来的问题 13

    1.4.1 用户浏览习惯改变带来的问题 14

    1.4.2 对搜索引擎的不友好 14

    1.4.3 前进后退按钮的失效 14

    1.4.4 刷新定位问题 16

    1.4.5 性能问题 16

    1.4.6 开发难度的加大 16

    第2章 创建第一个Ajax应用:留言板 18

    2.1 环境设置、需求分析及数据库设计 18

    2.1.1 环境设置 18

    2.1.2 留言板的需求分析 20

    2.1.3 数据库设计 21

    2.2 使用传统的Web开发方式 21

    2.2.1 设计留言显示页面 21

    2.2.2 设计留言提交页面 23

    2.2.3 服务器端程序设计 24

    2.3 使用Ajax实现留言板 26

    2.3.1 一个页面就是一个程序 27

    2.3.2 客户端页面设计 27

    2.3.3 服务器端程序设计 27

    2.3.4 使用XMLHttpRequest将数据提交到服务器 29

    2.3.5 处理服务器返回的信息 31

    2.3.6 将留言内容立刻显示在页面 31

    第2部分 JavaScript精讲

    第3章 JavaScript语言基础 39

    3.1 JavaScript概述 39

    3.1.1 JavaScript简介 39

    3.1.2 JavaScript版本介绍 39

    3.1.3 JavaScript在Ajax中的作用 40

    3.2 JavaScript编辑和调试工具 42

    3.2.1 用什么编写JavaScript程序 42

    3.2.2 使用浏览器调试JavaScript程序 42

    3.2.3 使用Venkman调试JavaScript程序 44

    3.3 如何在HTML中工作 45

    3.3.1 标记:标识语言类型 45

    3.3.2 使用外部JavaScript文件 46

    3.3.3 嵌入HTML标记的JavaScript代码 47

    3.4 建立JavaScript表达式 47

    3.4.1 变量 47

    3.4.2 常量 48

    3.4.3 数据类型 49

    3.4.4 数据类型的转换 51

    3.4.5 JavaScript的语句结构 53

    3.4.6 可选的分号 54

    3.4.7 加入注释 55

    3.4.8 建立赋值表达式 56

    3.4.9 建立数字表达式 56

    3.4.10 使用字符串表达式 57

    3.4.11 使用比较表达式 58

    3.4.12 使用逻辑表达式 60

    3.4.13 使用逗号(,)表达式 62

    3.4.14 理解操作符的优先级 62

    第4章 流程控制和函数 64

    4.1 代码流程控制:条件语句和循环语句 64

    4.1.1 使用if语句进行条件判断 64

    4.1.2 使用if…else…处理条件不成立的情形 65

    4.1.3 使用条件运算符(?:) 66

    4.1.4 使用switch语句进行多重条件判断 66

    4.1.5 使用while循环 68

    4.1.6 使用do…while循环 69

    4.1.7 使用for循环 69

    4.1.8 break语句:立即跳出循环的执行 70

    4.1.9 continue语句:停止当前循环进入下一次循环 71

    4.2 使用函数 72

    4.2.1 什么是函数 72

    4.2.2 定义和调用函数 72

    4.2.3 给函数传递参数 74

    4.2.4 参数的值传递和引用传递 75

    4.2.5 使用return语句从函数返回值 76

    4.2.6 变量的作用范围:局部变量和全局变量 77

    4.2.7 使用递归函数 78

    4.3 使用JavaScript内部函数 79

    4.3.1 什么是内部函数 79

    4.3.2 使用eval函数来执行JavaScript代码 79

    4.3.3 使用parseInt和parseFloat函数将字符串转换为数字 80

    4.3.4 使用escape和unescape函数进行URL编码和解码 81

    4.3.5 使用isNaN和isFinite函数判断数字的类型 81

    第5章 对象和表单 82

    5.1 对象概述 82

    5.2 处理日期和时间:Date对象 82

    5.2.1 创建一个日期对象 82

    5.2.2 从Date对象中提取信息 83

    5.2.3 设置日期对象的值 85

    5.2.4 进行日期计算 85

    5.2.5 其他Date对象的方法 86

    5.3 进行数学运算:Math对象 87

    5.3.1 将一个小数四舍五入到指定位数 88

    5.3.2 使用随机函数Math.random() 89

    5.4 使用数组:Array对象 90

    5.4.1 创建一个数组 90

    5.4.2 使用数组元素 91

    5.4.3 使用多维数组 92

    5.4.4 使用数组的length属性 92

    5.4.5 使用数组对象的方法 94

    5.5 处理文本:String对象 95

    5.5.1 确定字符串的长度 96

    5.5.2 搜索和提取子字符串 96

    5.5.3 替换和匹配字符串 97

    5.5.4 字符串对象的其他方法 98

    5.6 对象的高级应用 98

    5.6.1 获取浏览器信息:使用navigator对象 98

    5.6.2 处理地址栏信息:location对象 100

    5.6.3 控制前进和后退:使用history对象 102

    5.6.4 文档操作初步:document对象 102

    5.6.5 使用with()语句简化对象访问 106

    5.7 事件机制 107

    5.7.1 什么是事件 107

    5.7.2 使用HTML标记创建事件处理程序 107

    5.7.3 使用对象的事件属性创建事件处理程序 108

    5.7.4 使用attachEvent和addEventListener方法绑定事件处理程序 109

    5.7.5 使用event对象获取事件信息 109

    5.7.6 使用event对象的属性 111

    5.8 表单编程入门 112

    5.8.1 使用form对象 112

    5.8.2 引用表单域 114

    5.8.3 表单域的通用属性 114

    5.8.4 表单域的通用方法 115

    5.8.5 表单域的通用事件 116

    5.9 使用文本域 117

    5.9.1 获取和设置文本域的内容 118

    5.9.2 使用defaultValue获得HTML标记中的value值 118

    5.9.3 使用select方法选中文本 119

    5.9.4 使用onselect事件处理用户的选中操作 119

    5.10 使用按钮类表单 119

    5.10.1 使用简单按钮 119

    5.10.2 使用复选框 119

    5.10.3 使用单选按钮 121

    5.11 使用下拉列表框 121

    5.11.1 使用value属性获取和设置下拉列表框的值 122

    5.11.2 使用length属性获取选项的个数 122

    5.11.3 使用selectedIndex属性获取当前选项的索引 122

    5.11.4 使用options属性获取选项集合 122

    5.11.5 使用option对象的value属性和text属性 123

    5.11.6 使用option对象的selected属性 123

    5.11.7 使用select对象的onchange事件 123

    5.11.8 为select对象添加一个选项 124

    5.11.9 从select对象中删除一个选项 124

    5.11.10 清空一个select对象 124

    5.11.11 替换一个选项 125

    3.10.12 下拉框实例:二级联动的下拉列表菜单 125

    5.12 执行表单验证 127

    第6章 JavaScript面向对象程序设计 129

    6.1 JavaScript中支持面向对象的基础 129

    6.1.1 用定义函数的方式定义类 129

    6.1.2 使用new操作符获得一个类的实例 129

    6.1.3 使用方括号([])引用对象的属性和方法 130

    6.1.4 动态添加、修改、删除对象的属性和方法 132

    6.1.5 使用大括号({})语法创建无类型对象 133

    6.1.6 prototype原型对象 134

    6.2 深入认识JavaScript中的函数 135

    6.2.1 概述 135

    6.2.2 认识函数对象(Function Object) 135

    6.2.3 函数对象和其他内部对象的关系 137

    6.2.4 将函数作为参数传递 139

    6.2.5 传递给函数的隐含参数:arguments 139

    6.2.6 函数的apply、call方法和length属性 140

    6.2.7 深入认识JavaScript中的this指针 141

    6.3 类的实现 142

    6.3.1 理解类的实现机制 142

    6.3.2 使用prototype对象定义类成员 143

    6.3.3 一种JavaScript类的设计模式 145

    6.4 公有成员、私有成员和静态成员 146

    6.4.1 实现类的公有成员 146

    6.4.2 实现类的私有成员 146

    6.4.3 实现静态成员 147

    6.5 使用for(…in…)实现反射机制 148

    6.5.1 什么是反射机制 148

    6.5.2 在JavaScript中利用for(…in…)语句实现反射 149

    6.5.3 使用反射来传递样式参数 149

    6.6 类的继承 150

    6.6.1 利用共享prototype实现继承 150

    6.6.2 利用反射机制和prototype实现继承 152

    6.6.3 prototype-1.3.1框架中的类继承实现机制 154

    6.7 实现抽象类 156

    6.7.1 抽象类和虚函数 156

    6.7.2 在JavaScript实现抽象类 156

    6.7.3 使用抽象类的示例 157

    6.8 事件设计模式 158

    6.8.1 事件设计概述 158

    6.8.2 最简单的事件设计模式 158

    6.8.3 给事件处理程序传递参数 159

    6.8.4 使自定义事件支持多绑定 162

    6.9 实例:使用面向对象思想处理cookie 163

    6.9.1 需求分析 163

    6.9.2 创建Cookie对象 163

    6.9.3 实现设置Cookie的方法 163

    6.9.4 实现取Cookie值的方法 164

    6.9.5 实现删除Cookie的方法 164

    第7章 JavaScript高级技术 166

    7.1 框架编程 166

    7.1.1 框架编程概述 166

    7.1.2 框架间的互相引用 166

    7.1.3 改变框架的载入页面 167

    7.1.4 引用其他框架内的JavaScript变量和函数 168

    7.2 使用cookie 169

    7.2.1 cookie概述 169

    7.2.2 设置cookie 170

    7.2.3 获取cookie的值 171

    7.2.4 给cookie设置终止日期 172

    7.2.5 删除cookie 173

    7.2.6 指定可访问cookie的路径 173

    7.2.7 指定可访问cookie的主机名 173

    7.2.8 综合示例:构造通用的cookie处理函数 174

    7.3 使用正则表达式 175

    7.3.1 正则表达式概述 175

    7.3.2 使用RegExp对象执行字符串模式匹配 177

    7.3.3 提取子字符串 178

    7.3.4 和字符串相关的操作 179

    7.4 使用window对象 180

    7.4.1 使用window.open方法新建窗口 180

    7.4.2 使用定时器实现JavaScript的延期执行或重复执行 181

    7.4.3 给定时器调用传递参数 184

    7.4.4 使用status和defaultStatus属性改变状态栏信息 185

    7.4.5 使用alert、prompt和confirm语句与用户进行交互 186

    7.5 异常处理 187

    7.5.1 异常处理概述 187

    7.5.2 使用try-catch-finally处理异常 187

    7.5.3 使用throw语句抛出异常 188

    第3部分 Ajax核心技术

    第8章 XMLHttpRequest对象详解 193

    8.1 概述 193

    8.1.1 什么是XMLHttpRequest对象 193

    8.1.2 XMLHttpRequest对象在Ajax中的作用 193

    8.2 使用XMLHttpRequest对象和服务器进行通信 194

    8.2.1 创建XMLHttpRequest对象 194

    8.2.2 使用open方法创建一个请求 195

    8.2.3 使用send方法发送一个请求 196

    8.2.4 使用onreadystatechange事件捕获请求的状态变化 196

    8.2.5 使用readyState属性判断请求状态 196

    8.2.6 使用status属性判断请求的结果 197

    8.2.7 使用responseText获得返回的文本 198

    8.2.8 使用responseXML属性获取XML文档 199

    8.2.9 使用abort方法取消一个请求 200

    8.2.10 XMLHttpRequest对象的其他属性和方法 201

    8.3 XMLHttpRequest对象使用示例 201

    8.3.1 用get方法检测用户名是否存在 201

    8.3.2 使用post方法向服务器提交数据 203

    8.3.3 实现服务器相关的二级联动菜单 204

    第9章 Ajax的基础架构:DOM模型 210

    9.1 概述 210

    9.1.1 什么是DOM模型 210

    9.1.2 DOM模型的组成部分 211

    9.1.3 DOM模型在Ajax开发中的作用 211

    9.1.4 DOM模型的发展 211

    9.1.5 DOM模型和DHTML的关系 211

    9.1.6 小结 212

    9.2 DOM结构模型 212

    9.2.1 理解DOM中的文档层次结构 212

    9.2.2 结点的概念 212

    9.2.3 结点的类型 213

    9.3 处理DOM中的结点 213

    9.3.1 直接引用结点 213

    9.3.2 间接引用结点 214

    9.3.3 获取结点信息 215

    9.3.4 处理属性结点 216

    9.3.5 处理文本结点 217

    9.3.6 因浏览器而异的空白结点 218

    9.3.7 使用innerHTML改变结点的内容 219

    9.4 改变文档的层次结构 220

    9.4.1 使用document.createElement方法创建元素结点 220

    9.4.2 使用document.createTextNode方法创建文本结点 220

    9.4.3 使用appendChild方法添加结点 220

    9.4.4 使用insertBefore方法插入子结点 221

    9.4.5 使用replaceChild方法取代子结点 222

    9.4.6 使用cloneNode方法复制结点 223

    9.4.7 使用removeChild方法删除子结点 223

    9.5 表格操作 224

    9.5.1 表格操作概述 224

    9.5.2 DOM1(DHTML)中表格对象的结构 226

    9.5.3 创建一个表格对象 226

    9.5.4 添加一行 226

    9.5.5 添加单元格 226

    9.5.6 引用单元格 228

    9.5.7 使用单元格对象 228

    9.5.8 删除行和单元格 228

    9.5.9 交换两行的位置 230

    9.5.10 交换两个单元格的位置 233

    9.5.11 生成表格的其他方法 234

    第10章 控制外观:CSS入门 235

    10.1 CSS概述 235

    10.1.1 什么是CSS 235

    10.1.2 使用CSS的优点 235

    10.1.3 CSS在Ajax开发中的作用 236

    10.2 使用CSS控制页面表现 238

    10.2.1 CSS的样式 238

    10.2.2 CSS基本语法 240

    10.2.3 使用标记选择器 240

    10.2.4 使用类型选择器 241

    10.2.5 使用id选择器 242

    10.2.6 使用层次选择器 243

    10.2.7 继承 244

    10.2.8 样式应用就近原则 244

    10.2.9 认识CSS中的盒模型 246

    10.2.10 设计合理的CSS结构 247

    10.3 使用JavaScript控制CSS 247

    10.3.1 通过style对象改变结点的CSS 247

    10.3.2 使用className属性指定结点样式 248

    10.4 使用IE Only的CSS滤镜 249

    10.4.1 CSS滤镜概述 249

    10.4.2 使用界面滤镜 250

    10.4.3 静态滤镜 254

    10.4.4 动态滤镜 258

    10.4.5 使用JavaScript控制CSS滤镜 261

    第11章 Ajax标准通信载体--XML语言 263

    11.1 XML概述 263

    11.1.1 一个简单的XML实例 263

    11.1.2 XML的基本概念 264

    11.1.3 XML在Ajax中的作用 265

    11.2 使用Javascript操作XML 265

    11.2.1 MSXML介绍 265

    11.2.2 在IE浏览器中创建XML片段 266

    11.2.3 在IE浏览器中解析XML文本 267

    11.2.4 使用Mozilla浏览器支持的DOM模型创建XML片段 268

    11.2.5 使用Mozilla浏览器支持的DOM模型解析XML片段 269

    11.2.6 基于Javascript的XML解析程序 270

    11.3 其他通信模式 271

    11.3.1 使用XML的问题 271

    11.3.2 使用纯文本 271

    11.3.3 使用HTML片段 271

    11.3.4 使用JSON 272

    第12章 服务器端编程 277

    12.1 服务器端程序在Ajax中的角色 277

    12.1.1 理解Ajax中的服务器端编程模式 277

    12.1.2 Ajax中服务器端程序设计的特点 277

    12.1.3 参数传递方式 278

    12.1.4 接口设计模式 278

    12.2 常用服务器端编程技术介绍 280

    12.2.1 JSP语言介绍 280

    12.2.2 PHP语言介绍 281

    12.2.3 ASP.NET介绍 281

    12.3 实现Ajax翻页效果 282

    12.3.1 翻页 282

    12.3.2 系统描述 282

    12.3.3 客户端设计:页面结构 282

    12.3.4 客户端设计:页面外观 283

    12.3.5 客户端设计:设计Ajax逻辑 283

    12.3.6 客户端设计:分页按钮 284

    12.3.7 服务器端设计:通过ASP.NET控件直接得到HTML代码 285

    12.3.8 服务器端设计:设计通用的分页标签生成器 285

    12.3.9 服务器端设计:处理用户的查询 286

    12.3.10 最终效果 290

    第13章 Ajax中的常见问题及解决方案 292

    13.1 跨浏览器问题 292

    13.1.1 JavaScript中错误信息的显示 292

    13.1.2 JavaScript中的eval函数能否使用apply方法 293

    13.1.3 DOM中使用getElementById获取指定id结点的引用 295

    13.1.4 DOM中的事件绑定语法 295

    13.1.5 DOM中事件顺序模型的不同 296

    13.1.6 CSS中使用!important提高属性优先级 298

    13.1.7 在CSS中使用IE浏览器不支持的属性实现浏览器选择性 299

    13.1.8 在CSS中使用反斜杠注释屏蔽IE5-Mac 299

    13.2 解决导航问题 300

    13.2.1 导航问题的由来 300

    13.2.2 利用URL存储状态信息 300

    13.2.3 利用Hash参数解决刷新问题 301

    13.2.4 解决浏览器的【前进】【后退】按钮失效问题 305

    13.3 搜索引擎问题 312

    13.3.1 Ajax程序不易被搜索引擎检索到 312

    13.3.2 使用冗余地址思路解决搜索引擎问题 313

    13.4 安全问题 313

    13.4.1 服务器端始终要作有效性验证 313

    13.4.2 避免拒绝服务攻击(DoS攻击) 315

    13.4.3 其他安全问题 315

    13.5 性能问题 316

    13.5.1 衡量JavaScript代码的运行事件 316

    13.5.2 因浏览器而异的字符串连接操作 316

    13.5.3 按需载入JavaScript代码 318

    13.5.4 压缩JavaScript代码 319

    第4部分 典型应用

    第14章 动态获取数据的树状菜单 323

    14.1 树状菜单概述 323

    14.1.1 什么是树状菜单 323

    14.1.2 使用无序列表标记(ul) 324

    14.1.3 使用CSS控制外观 324

    14.1.4 展开和折叠涉及的关键技术 326

    14.2 实现树状菜单的两种方式 326

    14.2.1 完全在客户端实现 326

    14.2.2 完全由服务器端实现 327

    14.2.3 基于Ajax的实现 328

    14.3 设计树状菜单的数据结构 328

    14.3.1 设计树结点接口类 328

    14.3.2 实现树结构的数据库设计 329

    14.3.3 最终树结构实现类 330

    14.3.4 服务端的数据处理 333

    14.3.5 静态树状菜单的实现 334

    14.4 动态获取数据的树状菜单 337

    14.4.1 什么时候需要动态获取数据 337

    14.4.2 服务器端的代码设计 337

    14.4.3 创建获取数据的方法 339

    14.4.4 处理取回数据的方法 340

    14.4.5 服务器端的请求处理方法 341

    第15章 RSS阅读器 343

    15.1 RSS概述 344

    15.1.1 什么是RSS 344

    15.1.2 一个简单的RSS 2.0示例 345

    15.1.3 元素说明 346

    15.1.4 元素说明 347

    15.2 阅读RSS模块程序设计 347

    15.2.1 客户端原理分析 347

    15.2.2 客户端代码设计 347

    15.2.3 创建RSSReader类 350

    15.2.4 服务器端代码设计 353

    15.2.5 创建LoadRSS类 355

    15.3 添加RSS模块程序设计 358

    15.3.1 客户端原理分析 358

    15.3.2 客户端代码设计 358

    15.3.3 服务器端代码设计 360

    15.3.4 数据库设计 361

    第16章 搜索提示(Suggest) 365

    16.1 搜索提示概述 365

    16.1.1 Google Suggest介绍 365

    16.1.2 搜索提示所带来的好处 366

    16.1.3 基本原理分析 366

    16.2 客户端代码 367

    16.2.1 客户端原理分析 367

    16.2.2 创建请求 368

    16.2.3 处理返回数据 369

    16.3 服务器端代码 370

    16.3.1 服务器端原理分析 370

    16.3.2 处理服务请求 371

    16.3.3 数据库设计 372

    第17章 基于Ajax的相册 374

    17.1 基本原理分析 374

    17.1.1 界面设计分析 374

    17.1.2 CSS设计分析 375

    17.1.3 图片放大原理分析 378

    17.1.4 动态更换皮肤 379

    17.2 Ajax程序设计 380

    17.2.1 原理分析 380

    17.2.2 创建XMLHttpRequest对象 380

    17.2.3 发送请求 381

    17.2.4 处理返回数据 382

    17.3 服务器端程序设计 383

    17.3.1 处理服务请求 383

    17.3.2 创建实体访问类 385

    17.3.3 数据库设计 386

    第18章 基于Ajax的聊天室程序 389

    18.1 聊天室概述 390

    18.1.1 聊天室程序所需要解决的问题 390

    18.1.2 传统聊天室的缺点 390

    18.1.3 使用Ajax技术的好处 391

    18.1.4 基本原理分析 391

    18.2 数据库设计 392

    18.2.1 数据库设计基本原理 392

    18.2.2 数据表设计 392

    18.2.3 创建表所对应的实体类 393

    18.3 客户端程序设计 395

    18.3.1 基本原理分析 395

    18.3.2 选择聊天室页面 396

    18.3.3 聊天室主页面 398

    18.3.4 调用初始化方法 401

    18.3.5 获得消息数据处理 402

    18.3.6 发送消息数据处理 403

    18.4 服务器端程序设计 404

    18.4.1 刷新时获得消息请求的处理 404

    18.4.2 发送消息请求的处理 407

    18.4.3 数据库连接工具类 408

    第19章 拖拽方式定制个性化主页 411

    19.1 系统概述 411

    19.1.1 系统目标:模仿Google ig 411

    19.1.2 系统预览 412

    19.1.3 系统构架 412

    19.2 用户登录模块 414

    19.2.1 原理分析 414

    19.2.2 客户端代码 415

    19.2.3 处理服务请求 416

    19.2.4 服务器端代码 417

    19.2.5 连接数据库 423

    19.3 小窗口初始化模块 425

    19.3.1 原理分析 425

    19.3.2 数据库设计 426

    19.3.3 访问数据库的实体类 426

    19.3.4 父类代码的实现 429

    19.3.5 创建欢迎小窗口 430

    19.3.6 创建新闻RSS小窗口 431

    19.3.7 创建书签小窗口 432

    19.4 个性化主页模块 433

    19.4.1 布局显示原理分析 433

    19.4.2 数据库设计 433

    19.4.3 创建访问数据库实体类 435

    19.4.4 客户端代码 439

    19.4.5 布局设置原理分析 441

    19.4.6 关闭窗口自动保存布局 441

    19.4.7 拖拽窗口自动保存布局 443

    19.4.8 服务器端代码 446

    19.5 拖拽原理分析 448

    19.5.1 拖拽原理分析 448

    19.5.2 释放原理分析 449

    19.5.3 通用的拖放类 450

    第20章 上传文件显示进度条 452

    20.1 上传文件概述 452

    20.1.1 上传文件的表单概述 452

    20.1.2 上传文件后的服务器端处理 453

    20.1.3 使用Apache的FlieUpload 455

    20.1.4 使用Session记录上传进度 456

    20.2 客户端实现 456

    20.2.1 客户端原理分析 456

    20.2.2 客户端代码 457

    20.2.3 客户端请求处理 458

    20.3 服务器端实现 459

    20.3.1 服务器端原理分析 459

    20.3.2 上传文件处理过程 460

    20.3.3 获取上传信息 462

    20.3.4 创建监听器类 464

    20.3.5 注册监听器类 466

    第21章 滑动显示分页 470

    21.1 滑动显示分页概述 470

    21.1.1 传统的分页显示 470

    21.1.2 滑动分页显示 471

    21.1.3 滑块基本原理 471

    21.2 客户端实现 473

    21.2.1 客户端基本原理 473

    21.2.2 客户端页面代码 473

    21.2.3 Javascript代码分析 475

    21.3 服务器端代码实现 477

    21.3.1 服务器端请求处理 477

    21.3.2 创建数据实体类 479

    21.3.3 数据库设计 480

    21.3.4 连接数据库的工具类 481

    第22章 仿Windows关机效果 484

    22.1 基本原理分析 484

    22.1.1 Windows关机效果分析 484

    22.1.2 网页中实现关机效果分析 485

    22.2 代码实现 487

    22.2.1 客户端代码 487

    22.2.2 客户端脚本 488

    22.2.3 封装lightbox类 490

    22.3 服务器端代码 492

    附录A JavaScript关键字和保留字 494

    A.1 关键字 494

    A.2 保留字 494

    附录B prototype-1.4.0框架详解 495

    B.1 基础工具类 495

    B.1.1 Prototype对象 495

    B.1.2 Class对象 496

    B.1.3 对Object类的扩展 497

    B.1.4 对Function类的扩展 498

    B.1.5 对Number类的扩展 499

    B.1.6 Try对象 500

    B.1.7 其他工具 500

    B.2 定时器类 500

    B.3 基础工具类 501

    B.3.1 $()方法 502

    B.3.2 对String类(字符串)的扩展 502

    B.3.3 Enumerable(可枚举)接口 503

    B.3.4 $A()函数 506

    B.3.5 对Array类(数组)的扩展 507

    B.3.6 新的哈希(Hash)对象 507

    B.3.7 使用$H()函数获取Hash对象 508

    B.3.8 新的ObjectRange类 508

    B.3.9 使用$R()方法快速创建ObjectRange对象 508

    B.4 Ajax模块 509

    B.4.1 Ajax对象 509

    B.4.2 Ajax.Responders对象 509

    B.4.3 Ajax.Base类 510

    B.4.4 Ajax.Request类 510

    B.4.5 Ajax.Updater类 511

    B.4.6 Ajax.PeriodicalUpdater类 512

    B.5 对文档操作的封装 512

    B.5.1 使用document.getElementsByClassName方法 512

    B.5.2 Element对象 513

    B.5.3 Toggle对象 514

    B.5.4 Insertion命名空间 514

    B.5.5 Element.ClassNames类 515

    B.6 表单操作 516

    B.6.1 Field对象 516

    B.6.2 Form对象 516

    B.6.3 Form.Element对象 516

    B.6.4 Form.Element.Serializers对象 517

    B.6.5 使用$F()函数获取表单域的值 517

    B.7 Observer模式框架 517

    B.7.1 Abstract.TimedObserver类 517

    B.7.2 Form.Element.Observer类 518

    B.7.3 Form.Observer类 518

    B.7.4 Abstract.EventObserver类 518

    B.7.5 Form.Element.EventObserver类 519

    B.7.6 Form.Observer类 519

    B.8 事件处理:对Event对象的扩展 519

    B.9 结点的位置处理:Position对象 520
查看详情
12
相关图书 / 更多
征服Ajax Web2.0开发技术详解
征服市场的人
格里高利·祖克曼 著
征服Ajax Web2.0开发技术详解
征服C指针 第2版
[日]前桥和弥
征服Ajax Web2.0开发技术详解
征服世界的中国美食 《康小智图说系列 影响世界的中国传承》
陈长海
征服Ajax Web2.0开发技术详解
征服人工智能(我的未来世界·迷境大冒险科学漫画)
穆秋月 译;[韩]柳大永 著 (韩)崔优斌 绘 (韩)李信牧 监修
征服Ajax Web2.0开发技术详解
征服世界完全手册
瑞安·诺思
征服Ajax Web2.0开发技术详解
征服格拉纳达
[美]华盛顿·欧文(Washington Irving) 著;刘荣跃 译
征服Ajax Web2.0开发技术详解
征服者的盛宴 : 影响世界史的12种食材
(英)德鲁·史密斯
征服Ajax Web2.0开发技术详解
征服的怒潮:1942—1944,从瓜岛战役到菲律宾海战役
伊恩·托尔
征服Ajax Web2.0开发技术详解
征服与文化
托马斯·索威尔
征服Ajax Web2.0开发技术详解
征服Power BI:提升办公数字化能力的45个实战技巧
雷元 著
征服Ajax Web2.0开发技术详解
征服法国外籍军团的华人特种兵(从被质疑、被排挤到被尊重,一个华人特种兵亲口讲述在法国外籍特种部队的10年魔鬼服役生涯)
朱洪海
征服Ajax Web2.0开发技术详解
征服
[加拿大]邝大卫 著;张明敏 译;湛庐文化 出品