0

我在网页中使用了一个简单的 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 响应时,网页变为非活动状态。也就是说,用户不能在文本框中键入或单击任何其他链接。在收到响应之前,什么都做不了。

如何在等待响应时使网页正常运行?我必须使用多线程或任何其他方式吗?

4

1 回答 1

1

你需要使你的ajax请求异步,通过设置

xmlhttp.open("GET",theUrl,true);
您的请求中的第三个参数为 true。

还有这条线

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

应该写成

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

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

于 2012-08-16T07:01:21.730 回答