在等待AJAX​​响应时,网页变为非活动状态?

时间:2012-08-16 06:57:37

标签: javascript html ajax response webpage

我在网页中使用了一个简单的AJAX调用 他的网页是这样的。单击提交按钮时,JavaScript会将文本框中的数据发送到服务器,并在div中显示响应。

我的AJAX代码是:

var xmlHttp = null;
var api="getdetails.jsp?id=";
var theUrl=api.concat(theId);
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false );
xmlHttp.send();
document.getElementById("details").innerHTML=xmlHttp.responseText;

但问题是,在等待AJAX​​响应时,网页变为非活动状态。也就是说,用户无法键入文本框或单击任何其他链接。在收到回复之前,什么也做不了。

如何在等待回复时让网页正常运作?我是否必须采用多线程或任何其他方式?

1 个答案:

答案 0 :(得分:1)

您需要通过将请求中的

xmlhttp.open("GET",theUrl,true);
第三个参数设置为true来使您的ajax请求异步。

也是这一行

document.getElementById("details").innerHTML=xmlHttp.responseText;

应该用

xmlHttp.onreadystatechange
编写,这样当状态发生变化并且结果在responseText中可用时,只有你可以设置一个dom元素。请仔细阅读使用ajax的文档。

请参阅此示例http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first