AJAX 中国語リファレンスマ...login
AJAX 中国語リファレンスマニュアル
著者:php.cn  更新時間:2022-04-12 16:00:57

XHR 準備完了状態



onreadystatechange イベント

リクエストがサーバーに送信されると、いくつかの応答ベースのタスクを実行する必要があります。

readyState が変更されるたびに、onreadystatechange イベントがトリガーされます。

readyState属性にはXMLHttpRequestのステータス情報が格納されます。

XMLHttpRequest オブジェクトの 3 つの重要なプロパティは次のとおりです:

PropertyDescription
onreadystatechange ストレージ関数 (または関数名)。readyState プロパティが変更されるたびに呼び出されます。
readyState

XMLHttpRequestのステータスを保存します。 0から4まで変化します。

  • 0: リクエストは初期化されていません

  • 1: サーバー接続が確立されました

  • 2: リクエストが受信されました

  • 3: リクエストは処理中です

  • 4 : リクエストは完了し、レスポンスは Ready になりました

ステータス200: "OK"
404: ページが見つかりません

onreadystatechange イベントでは、サーバー応答を処理する準備ができたときに実行するタスクを指定します。

readyState が 4 でステータスが 200 の場合、応答の準備ができていることを意味します:

インスタンス

<html><!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc()
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","/try/ajax/ajax_info.txt",true);
xmlhttp.send();
}
</script>
</head>
<body>

<div id="myDiv"><h2>使用 AJAX 修改该文本内容</h2></div>
<button type="button" onclick="loadXMLDoc()">修改内容</button>

</body>
</html>

インスタンスの実行»

オンライン インスタンスを表示するには、[インスタンスの実行] ボタンをクリックします

注: onreadystatechange イベント readyState の各変更に対応して 5 回 (0 ~ 4) トリガーされます。


コールバック関数の使用

コールバック関数は、パラメータとして別の関数に渡される関数です。

Web サイトに複数の AJAX タスクがある場合は、XMLHttpRequest オブジェクトを作成するための 標準 関数を作成し、AJAX タスクごとにその関数を呼び出す必要があります。

関数呼び出しには、onreadystatechange イベントが発生したときに実行される URL とタスクが含まれている必要があります (呼び出しごとに異なる場合があります):

インスタンス

<!DOCTYPE html>
<html>
<head>
<script>
var xmlhttp;
function loadXMLDoc(url,cfunc)
{
if (window.XMLHttpRequest)
  {// IE7+, Firefox, Chrome, Opera, Safari 代码
  xmlhttp=new XMLHttpRequest();
  }
else
  {// IE6, IE5 代码
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,true);
xmlhttp.send();
}
function myFunction()
{
loadXMLDoc("/try/ajax/ajax_info.txt",function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  });
}
</script>
</head>
<body>

<div id="myDiv"><h2>使用 AJAX 修改文本内容</h2></div>
<button type="button" onclick="myFunction()">修改内容</button>

</body>
</html>

インスタンスの実行»

「インスタンスの実行」をクリックしますオンラインインスタンスを表示するボタン



PHP中国語ウェブサイト