Ajax OnReadyStateChange 事件 | AJAX 教程

Posted 跟谁学编程

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax OnReadyStateChange 事件 | AJAX 教程相关的知识,希望对你有一定的参考价值。

onreadystatechange 事件

当请求被发送到服务器时,我们需要执行一些基于响应的任务。

每当 readyState 改变时,就会触发 onreadystatechange 事件。

readyState 属性存有 XMLHttpRequest 的状态信息。

下面是 XMLHttpRequest 对象的三个重要的属性:

属性 描述
onreadystatechange 存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。
readyState

存有 XMLHttpRequest 的状态。从 0 到 4 发生变化。

  • 0: 请求未初始化

  • 1: 服务器连接已建立

  • 2: 请求已接收

  • 3: 请求处理中

  • 4: 请求已完成,且响应已就绪

status 200: “OK”
404: 未找到页面

在 onreadystatechange 事件中,我们规定当服务器响应已做好被处理的准备时所执行的任务。

当 readyState 等于 4 且状态为 200 时,表示响应已就绪:

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerhtml=xmlhttp.responseText;
}
}

点击下方“阅读原文”可亲试效果

注意: onreadystatechange 事件被触发 4 次(0 – 4), 分别是:0-1、1-2、2-3、3-4,对应着 readyState 的每个变化。


使用回调函数

回调函数是一种以参数形式传递给另一个函数的函数。

如果您的网站上存在多个 AJAX 任务,那么您应该为创建 XMLHttpRequest 对象编写一个标准的函数,并为每个 AJAX 任务调用该函数。

该函数调用应该包含 URL 以及发生 onreadystatechange 事件时执行的任务(每次调用可能不尽相同):

function myFunction()
{
loadXMLDoc("/try/ajax/ajax_info.txt",function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
});
}

点击下方“阅读原文”可亲试效果

以上是关于Ajax OnReadyStateChange 事件 | AJAX 教程的主要内容,如果未能解决你的问题,请参考以下文章

Ajax > onreadystatechange - 打开/发送 > 命令完全任意?

AJAX---onreadystatechange事件中获取相应内容

Ajax-onreadystatechange事件

Ajax 两种请求方式的区别onload和onreadystatechange

Ajax中onload和onreadystatechange两种请求方式的区别

AJAX - onreadystatechange 事件(XMLHttpRequest对象的属性)