Я только что заметил странное поведение в веб-приложении, которое у меня возникло после установки Firefox 11. Я не видел этой ошибки раньше, и сайт работает уже более года.
var timeOutTimer = null;
var StartDownload = function () {
xhr.open("GET", "/Download", true); //Notice asynchronous=true
xhr.onreadystatechange = DownloadComplete;
xhr.send("...");
timeOutTimer = new Timer(......); //This line gets executed AFTER DownloadComplete()
};
var DownloadComplete = function () {
if (xhr.readyState == 4) {
timeOutTimer.Abort(); //<--------timeOutTimer is null here
//Callstack points back to xhr.send
}
}
Должно ли это быть на самом делевозможно ли для XmlHttpRequest вызвать onreadystatechange-callback еще до выхода из функции send ()?
Эта ошибка возникает только при просмотре веб-сайта на моем локальном сервере разработки.Кроме того, если я добавлю серверную сторону с задержкой 1сек, проблем не будет.Я не пробовал ни в одном другом браузере.
Я полагаю, что решением было бы запустить таймер перед отправкой, но я просто хочу узнать причину такого поведения, и если это нормально, так как я никогда не испытывалэто раньше.