一、异步 - True 或 False?
AJAX 指的是异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。
XMLHttpRequest 对象如果要用于 AJAX 的话,其 open() 方法的 async 参数必须设置为 true:
xhr.open("get","test1.PHP",true);
二、Async = true
当使用 async=true 时,请规定在响应处于 onreadystatechange 事件中的就绪状态时执行的函数:
xhr.open("get","test1.PHP",true);
xhr.send(null);
xhr.onreadystatechange = function(){ // 回调函数
if(xhr.readyState == 4){
if(xhr.status == 200){
var data = xhr.responseText; // 获取响应数据(以文本形式)
console.log(data);
}
}
}
三、Async = false
如需使用 async = false,请将 open() 方法中的第三个参数改为 false:
xhr.open("GET","test1.txt",false);
不推荐使用 async = false,但是对于一些小型的请求,也是可以的。
JavaScript 会等到服务器响应就绪才继续执行。如果服务器繁忙或缓慢,应用程序会挂起或停止。
注意:当您使用 async = false 时,请不要编写 onreadystatechange 函数,把代码放到 send() 语句后面即可:
xhr.open("GET","test1.txt",false);
xhr.send(null);
document.body.innerHTML=xhr.responseText;
四、服务器响应
如需获得来自服务器的响应,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。
属性 | 描述 |
---|---|
responseText | 获得字符串形式的响应数据。 |
responseXML | 获得 XML 形式的响应数据。 |
responseText 属性
如果来自服务器的响应并非 XML,请使用 responseText 属性。
responseText 属性返回字符串形式的响应,因此您可以这样使用:
document.body.innerHTML=xhr.responseText;
responseXML 属性
如果来自服务器的响应是 XML,而且需要作为 XML 对象进行解析,请使用 responseXML 属性。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。