0

显然,要与服务器通信,您必须首先向服务器发送请求,然后接收响应。然而,在这段代码中,您首先收到响应,然后在下一行发送请求——这里发生了什么?

    xmlhttp.onreadystatechange=function()
      {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
        {
        document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
        }
      }
    xmlhttp.open("GET","gethint.php?q="+str,true);
    xmlhttp.send();
4

2 回答 2

5

它不会首先收到响应,它只是设置收到响应要做什么(这永远不会立即,因为这是一个异步操作)。这里的顺序实际上并不重要。

于 2013-07-24T14:47:40.617 回答
1

onreadystatechange只是一个在请求解决时运行的侦听器。

想象一下,您的朋友正在邮局帮助您收集邮件。你告诉他:

“每次有工人给你包裹,检查包裹上的名字是否正确,然后打开它,组装好里面的东西,然后把它带回我家。现在,去邮局!”

您已经告诉您的朋友收到您的邮件后该怎么做,然后您派他去取件。

于 2013-07-24T15:03:03.673 回答