最新的Web开发教程
 

AJAX - onreadystatechange事件


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);
  }
试一试»