ajax|页面
ajax的页面提示处理
现象:由于现有系统必须在b/s下实现实时数据显示及tip显示,当鼠标移到某一<div>时,系统采用ajax的方式向后台取数据。在取数据的过程中常常发现系统进程停顿的情况,主要表现为:所有系统进程停顿,鼠标不起作用。
原因:
原有系统采用了同步的方式进行提交,代码如下:
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("post", "testto.jsp", false);//同步
xmlhttp.Send(doc);
return xmlhttp.responseText;
把上面的请求改为异步,即把xmlhttp.Open("post", "testto.jsp", true);时出现javascript脚本错误。
解决办法:
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open("post", "maptipto.jsp", true);
xmlhttp.Send(doc);
xmlhttp.onreadystatechange=function(){ //回调函数
if(xmlhttp.readyState==4&&){
if(xmlhttp.status==200){
var text = xmlhttp.responseText;
//todo 处理函数
dosometing();
} else {
alert("您所请求有异常。");
}
} else{
//提示函数
document.getElementById("messageDiv").innerHTML="读取数据中,请稍候……";
}
}
说明:采用回调函数的方式处理请求。处理函数应该放在回调函数之内而不应该放在回调函数之外