|
|
名称
Asynchronous JavaScript and XML
异步得JavaScript和XML
作用
在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容
同步与异步
异步传输是面向字符的传输,它的单位是字符;异步传输是将比特分成小组来进行传送。一般每个小组是一个8位字符,在每个小组的头部和尾部都有一个开始位和一个停止位,它在传送过程中接收方和发送方的时钟不要求一致
同步传输是面向比特的传输,它的单位是桢,它传输的时候要求接受方和发送方的时钟是保持一致的。
同步传输通常要比异步传输快速得多,同步传输的开销也比较少
包含的技术
- 使用CSS和XHTML来表示
- 使用DOM模型来交互和动态显示
- 使用XMLHttpRequest来和服务器进行异步通信
- 使用javascript来绑定和调用
重点是3,理解XMLHttpRequest对象
XMLHttpRequest属性
onreadystatechange 每次状态改变所触发事件的事件处理程序。
responseText 从服务器进程返回数据的字符串形式。
responseXML 从服务器进程返回的DOM兼容的文档数据对象。
status 从服务器返回的数字代码,比如常见的404(未找到)和200(已就绪)
status Text 伴随状态码的字符串信息
readyState 对象状态值
- 0 (未初始化) 对象已建立,但是尚未初始化(尚未调用open方法)
- 1 (初始化) 对象已建立,尚未调用send方法
- 2 (发送数据) send方法已调用,但是当前的状态及http头未知
- 3 (数据传送中) 已接收部分数据,因为响应及http头不全,这时通过responseBody和responseText获取部分数据会出现错误
- 4 (完成) 数据接收完毕,此时可以通过通过responseXml和responseText获取完整的回应数据
使用ajax的步骤
- 创建xmlhttprequest对象,由于各浏览器之间存在差异,所以创建一个XMLHttpRequest对象可能需要不同的方法。这个差异主要体现在IE和其它浏览器之间。
- 使用xmlhttprequest对象的open()和send()方法发送资源请求给服务器
- 调用onreadystatechange函数,当发送请求到服务器,我们想要服务器响应执行一些功能就需要使用onreadystatechange函数,每次xmlhttprequest对象的readyState发生改变都会触发onreadystatechange函数
- 使用xmlhttprequest对象的responseText或responseXML属性获得服务器的响应
示例
|
|
处理post表单
post表单数据需要使用xmlhttprequest对象setRequestHeader方法增加一个HTTP头。
post表单例子
处理xml
需要放在if (xhttp.readyState == 4 && xhttp.status == 200) {}
里面
处理json
使用JSON.parse方法
其他请参考菜鸟教程
参考: