AJAX从入门到放弃(二)
XHR 响应
由 driventokill 创建,路飞 最后一次修改 2015-09-25
AJAX - 服务器 响应
由于 HTTP 响应是由服务端发出的,并且服务器做出响应需要时间(比如网速慢等原因),所以我们需要监听服务器响应的状态,然后才能进行处理。
服务器响应
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
属性 | 描述 |
---|---|
responseText | 获得字符串形式的响应数据。 |
responseXML | 获得 XML 形式的响应数据。 |
responseText 属性
如果来自服务器的响应并非 XML,请使用 responseText 属性。
responseText 属性返回字符串形式的响应,因此您可以这样使用:
提示:对于 responseText 属性,只有当 readyState 属性值变为4时,responseText 属性才可用,因为这表明AJAX请求已经结束!
responseXML 属性
如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性:
实例
请求 cd_catalog.xml 文件,并解析响应:
xmlDoc=xmlhttp.responseXML;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;
txt="";
x=xmlDoc.getElementsByTagName("ARTIST");
for (i=0;i<x.length;i++)
{
txt=txt + x[i].childNodes[0].nodeValue + "<br>";
}
document.getElementById("myDiv").innerHTML=txt;
XHR readyState
由 driventokill 创建,路飞 最后一次修改 2015-09-28
AJAX - onreadystatechange 事件
当发送一个请求后,客户端需要确定这个请求什么时候会完成,因此,XMLHttpRequest对象提供了 onreadystatechange 事件机制来捕获请求的状态,继而实现响应。
onreadystatechange 事件
当请求被发送到服务器时,我们需要执行一些基于响应的任务。
每当 readyState 改变时,就会触发 onreadystatechange 事件。
readyState 属性存有 XMLHttpRequest 的状态信息。
下面是 XMLHttpRequest 对象的三个重要的属性:
属性 | 描述 |
---|---|
onreadystatechange | 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。 |
readyState |
存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。 |
0-请求未初始化
1-服务器连接已建立
2-请求已接收
3-请求处理中
4-请求已完成,且相应已就绪
status 200:“ok” 404:未找到页面
当readyState为4且status为200 表示响应已就绪
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById("myDiv").innerHTML = xmlhttp.responseText;
}
}
最新文章
- HBase Zookeeper 安装学习
- Android 定位地理坐标体系
- React与ES6(三)ES6类和方法绑定
- PDA手持终端实现零售行业商场和超市仓储管理和销售开单自动化和系统化
- Ember.js demo5
- bootm命令中地址参数,内核加载地址以及内核入口地址
- NDK开发之数组操作
- Android中Menu的基本用法
- 关于Windows Phone的资源文件Build Action属性
- WMvare桥接模式固定IP
- python-类内置属性和内置方法
- LoadRunner 11 error:Cannot initialize driver dll
- Boost - 从Coroutine2 到Fiber
- java中将string类型转int类型或者将string类型转long类型方法
- activemq 控制面板里Number Of Pending Messages、 Messages Enqueued等含义解释
- Android开发 - 解决DialogFragment在全屏时View被状态栏遮住的问题
- git合并分支上指定的commit
- 【C#】语音识别 - System.Speech
- JSP 过滤器
- Python里面这些点,据说80%的新手都会一脸懵逼
热门文章
- java_28 序列化与反序列化
- JAVA EE 环境配置——JAVA8 下载安装和 Eclipse EE的下载安装
- [原]Webpack 3 + AngularJS1.* + Bootstrap 4 + Mapbox-gl
- 发布后就很丢人的随笔(c++)
- python websocket 再线聊天室的 Demo
- struts 1.x 方法探析
- 探究osg中的程序设计模式【目录】
- FTP做作业用到的知识点:
- js最实用string(字符串)类型的使用及截取与拼接详解
- BUAAOO第二单元多线程电梯作业总结