处理服务器响应.ppt
小结 Ajax应用的开发确实有些繁琐,实际上,现在有很多成熟稳定的Ajax工具葙封装了以上诸多细节,是的Ajax编程更加容易。但是如果不知道应用程序在做什么,就很难发现其中的问题 XMLHttpRequest对象是Ajax应用的核心,必须非常熟悉 Ajax应用的基本流程: 创建XMLHttpRequest对象 从Web表单中获取需要的数据 设置要连接的URL 建立到服务器的连接 设置服务器在完成后要运行的回调函数 发送请求 在请求和响应中使用XML 发送XML格式的请求 XMLHttpRequest是Ajax应用程序中使用的基本对象。看起来它似乎是为通过HTTP请求发送XML或者以某种XML格式发出HTTP请求而设计的,但实际上它要做的只不过是为客户机代码(在网页中通常是JavaScript)提供一种发送HTTP请求的方式,并不要求必须使用XML请求或响应 注意:虽然XML可以通过HTTP发送,但XML是一种数据格式而不是传输协议 从客户机发送的XML数据格式 修改上一个邮编的例子,使用XML传递数据。将名/值对转化为XML数据格式: 063000 XML要求有一个根元素;如果使用文档片段(XML文档的一部分)的话则需要一个封闭元素,将上面的XML改为以下方式(同时便于传递等多信息): 063000 向服务器发送XML 请求中的数据必须手工格式化为XML 对于XML最好使用POST请求,因为有些浏览器限制了 GET 请求字符串的长度,而XML可能很长 告诉服务器要发送的是XML而不是一般的名/值对 XML通过send()方法发送,而不是附加在请求URL最后的参数 发送XML和普通文本的比较 XML不是一种简洁、快速和节省空间的格式,和普通文本相比,XML通常总会占用更多的空间,速度也更慢,因为需要在消息中增加 XML 所需要的标签和语义,同时解析XML也比处理普通文本慢 构造和维护XML不是简单的事情 XML没有为请求增加任何东西,除了复杂性的问题之外,和普通文本以及名/值对相比,在请求中使用 XML实际上没有多少好处(如果有的话)。实际上没有任何东西可用XML而不能用普通文本发送 一般地,只有当服务器仅接受XML时才需要发送XML 使用JSON进行数据传输 什么是JSON? JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,而且它是基于JavaScript 的。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript 等)。这些特性使JSON成为理想的数据交换语言 什么是JSON? JSON有两种结构: “名/值”对的集合(A collection of name/value pairs)。在不同的语言中,它被理解为对象,结构,关联数组等 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组 这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能 JSON的基本形式 对象是一个无序的“名/值”对集合。一个对象以“{”开始,“}”结束。每个“名称”后跟一个“:” ;“名/值”对之间使用“,” 分隔: 数组是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔: JSON示例 下面的JSON表示名称/值对: { "firstName": "Brett" } 多个名称/值对串在一起: { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newI" } 从语法方面来看,这与名称/值对相比并没有很大的优势,但是在这种情况下 JSON更容易使用,而且可读性更好 JSON示例 当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性: { “employees": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newI" }, { "firstName": "Jason", "lastName":"Hunter", "email": "jason@" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elhar