Программирование > JavaScript & JScript
XMLHttpRequest
Anthony:
День добрый!
Совершенно неожиданно наступил на такие грабли: на сайте есть табличка с данными, которые обновлются посредством XMLHttpRequest, когда пользователь нажимает на кнопочку. Через некоторое время ИЕ вылетает с системной ошибкой. В Firefox все работает стабильно.
Кто-нибудь сталкивался с подобной проблемой? Ниже привожу код скрипта:
function get_http(){
var xmlhttp;
if (window.XMLHttpRequest)
{
try { xmlhttp = new XMLHttpRequest(); }
catch (e) { xmlhttp = false; }
}
else if (window.ActiveXObject)
{
try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e) { xmlhttp = false; }
}
return xmlhttp;
}
function ch_tbl_section()
{
if(!this.http)
{
this.http = get_http();
this.working = false;
}
if (!this.working && this.http)
{
var http = this.http;
url = .....;
this.http.open("GET", url, true);
this.http.onreadystatechange = function()
{
if (http.readyState == 4)
{
...
}
}
this.http.send(null);
}
if(!this.http) alert(\'Ошибка XMLHTTP!\');
}
vasa_c:
Что за ошибка?
В каком контексте выполняются эти функции?
Anthony:
Ошибка системная "Приносим свои извинения, приложение будет закрыто. Отправить отчет?" точный текст не помню.
Контекст. Ну я в принципе написал в самом начале. Пользователь жмет на кнопку "Обновить", вызывается функция ch_tbl_section(), которая посылает запрос на сервер. С сервера возвращается строка с данными, которая потом парсится, согдается табличка и после этого уже на страничке старая заменяется новой.
Ошибка вылезает только в ИЕ после нескольких обновлений.
vasa_c:
Т.е. ch_tbl_section() не как метод объекта вызывается? Зачем тогда this?
Anthony:
Честно говоря понятия не имею ;) Код писал не я, а разбираться приходится.
У меня тоже сначала возник подобный вопрос, думаю это один из вариантов работы с глобальными переменными без их объявления вне функции.
Навигация
Перейти к полной версии