使用XMLHttpRequest时遇到了一个特殊的问题。方案是:我有一个加载报告的页面,有时加载报告并将其显示给浏览器需要30多分钟。在此期间,我想向客户提供进度反馈。所以,我已将报告页面放在另一个页面的IFrame中,当单击该按钮生成报告时,我调用window.parent.Status()然后返回true以使回发发生。这是window.parent.Status()的作用。
function Status() {
LoadingPanel.Show();
GetStatus();
}
function GetStatus() {
var xmlHttp;
try {
// Firefox, Opera 8.0+, Safari
xmlHttp = new XMLHttpRequest();
}
catch (e) {
// Internet Explorer
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.open("GET", "Status.aspx", true);
xmlHttp.send();
xmlHttp.onreadystatechange = function () {
if (xmlHttp.readyState == 4) {
var msg = '';
var percentage = '';
if (xmlHttp.responseText == '') {
document.getElementById('dvStatus').innerHTML = 'Loading....';
}
else {
var resp = xmlHttp.responseText.split('$');
if (resp.length > 1) {
document.getElementById('dvStatus').innerHTML = resp[1];
if (resp[1] == 'Report layout built successfully') {
setTimeout('HideLoadingPanel()', 5000);
}
else {
setTimeout('GetStatus()', 1000);
}
}
}
}
}
}
function HideLoadingPanel() {
LoadingPanel.Hide();
document.getElementById('dvStatus').innerHTML = 'Loading....';
}
请参阅XMLHTTPRequest调用Status.aspx页面并在页面加载方法中读取一些会话并将响应发送回如下:Response.Write(percentage + "$" + message + " : " + percentage + "%" + "$");
现在问题是:第一次使用XMLHttpRequest需要2分钟或超过2分钟才能点击Status.aspx页面的page_load方法。但是一旦第一次呼叫发生,它就会在代码要求它每秒进行一次呼叫。问题出在第一个电话上。是谁能告诉我这是什么问题? 我真的遇到了这个问题
此致 Mohin酒店