1
function loadxmldoc()
{
  var xmlhttp;
  if (window.XMLHttpRequest)
  {
     xmlhttp=new XMLHttpRequest();
  }
  else
  {
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }

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

 xmlhttp.open("GET","ajax_info.php?fname=sakthi&lname=karthiga",false);

 xmlhttp.send();
}

ajax_info.php

<?php
  echo( "hello"."<br>".$_GET["fname"].$_GET["lname"]); 
?>

このコードでは、ajax ステータスを FALSE に変更しますが、TRUE と同じように動作します。TRUE と false の違いは何ですか? false に変更すると、サーバー側で何が起こるか

4

1 に答える 1

2

関数の 3 番目のパラメーターについて話していると思いますopen。リクエストが非同期であるかどうかを示します。どちらの場合も、まったく同じ要求がサーバーに送信されます。違いはクライアントにあります。非同期 (AJAX に推奨) を使用する場合、クライアント ブラウザーは要求の実行中にフリーズせず、sendメソッドはすぐに戻ります。サーバーでの実行が完了すると、サブスクライブしたコールバックが呼び出されます。

パラメータをメソッドに設定すると、サーバーへのリクエストの実行中にクライアント ブラウザがブロックされてフリーズしますfalsesendこれは AJAX の目的全体を完全に無効にしますが、成功コールバックの外でリクエストの結果を使用したい一部の人々によって使用されます。同じ間違いをしないでください。

true常に非同期 AJAX リクエスト ( ) を使用し、呼び出しをブロックしないことを強くお勧めします。

于 2012-12-08T14:42:35.453 に答える