我发送ajax请求并在我的js/html应用程序中处理响应。该设备是Windows Mobile CE,没有jQuery支持,设备浏览器(IE)不支持eventhandlers,所以我不能使用异步调用。无论如何,我的问题是,在发送活动之前,我想显示一个,请等待消息,并在收到回复后,我想再次隐藏它。发送ajax请求和接收响应(同步)
function sendRequest() {
// make please wait visible
document.getElementById("pleasewait").style.display = "block";
console.log("pleasewait visible.");
var XHR = new XMLHttpRequest();
// synch call
XHR.send(sendData);
// suppose it takes 20-30 seconds
console.log("response received :" + XHR.responseText);
XHR.open('POST', 'url', false);
// make please wait hidden
document.getElementById("pleasewait").style.display = "none";
}
但是,当我运行它时,PLEASEWAIT元素可见,当我们收到响应(不发),并成为immediatelty再次隐藏,即使这个过程需要例如20-30秒。控制台消息以正确的顺序显示,但请稍候元素没有正确更新。我尝试了一些setTimeouts,但没有想要的结果。我无法添加一些jsfiddle,因为很难在远程实现ajax请求处理程序。