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

我想你说的是open函数的第三个参数。它指示请求是否应该是异步的。在这两种情况下,完全相同的请求将被发送到服务器。差异将在客户端。如果您使用异步(AJAX 推荐),客户端浏览器在请求执行期间不会冻结,并且该send方法将立即返回。一旦服务器上的执行完成,您订阅的回调将被调用。

如果将参数设置falsesend方法,将在对服务器的请求的整个执行过程中阻塞并冻结客户端浏览器。这完全违背了 AJAX 的全部目的,但它被一些想要在成功回调之外使用请求结果的人使用。不要犯同样的错误。

我强烈建议您始终使用异步 AJAX 请求 ( true) 而不是阻塞调用。

于 2012-12-08T14:42:35.453 回答