Я сталкиваюсь со специфической проблемой при использовании 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 минут, чтобы попасть на метод page_load страницы Status.aspx. Но как только происходит первый вызов, он выполняет вызов каждую секунду, как того требуют коды. Проблема для первого звонка. Кто-нибудь может сказать мне, в чем проблема?
У меня действительно проблемы с этим вопросом
С уважением,
Mohin