onreadystatechange事件
当被发送到服务器的请求,我们要执行基于所述响应的一些动作。
onreadystatechange事件被触发每次readyState的变化。
readyState属性持有了XMLHttpRequest的状态。
XMLHttpRequest对象的三个重要的属性:
属性 | 描述 |
---|---|
onreadystatechange | 存储函数(或函数的名称)被自动调用每次readyState属性变化 |
readyState | 拥有了XMLHttpRequest的状态。 从0到4的变化: 0:请求未初始化 1:服务器连接建立 2:接收到的请求 3:请求处理 4:请求完成和响应准备就绪 |
status | 200:“OK” 404:找不到页面 |
在onreadystatechange事件中,我们指定当服务器响应准备处理会发生什么。
当readyState为4和状态为200,则响应已准备就绪:
例
function loadDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200) {
document.getElementById("demo").innerHTML = xhttp.responseText;
}
};
试一试» 注:onreadystatechange事件被触发5次(0-4),一时间对于每个readyState的改变。
用回调函数
回调函数是作为参数传递给另一个函数传递的函数。
如果您对您的网站多个AJAX任务,你应该创建一个标准功能,用于创建XMLHttpRequest对象,并称之为每个AJAX任务。
函数调用应包含URL以及如何对onreadystatechange的(这是每次调用可能不同),这样做:
例
function loadDoc(cFunc) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (xhttp.readyState == 4 && xhttp.status == 200) {
cFunc(xhttp);
}
试一试»