我在网页中使用了一个简单的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响应时,网页变为非活动状态。也就是说,用户无法键入文本框或单击任何其他链接。在收到回复之前,什么也做不了。
如何在等待回复时让网页正常运作?我是否必须采用多线程或任何其他方式?
答案 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