Как отловить все окончания XMLHttpRequest - PullRequest
1 голос
/ 22 февраля 2012

У меня есть условие, которое должно выполняться до и после использования XMLHttpRequest, но не во время.Пример:

var running = false; // condition

function go (callback)
{
    running = true; // condition broken

    var http = new XMLHttpRequest ();
    http .open ("GET", url, true);
    http .onreadystatechange = function ()
    {
        if (4 == this .readyState)
        {
            try
            {
                callback (this .responseText);
            }
            catch (e) {}

            running = false; // condition restored
        }
    }
}

Мне нужно гарантировать, что running всегда в конечном итоге станет false, независимо от того, как закончится XMLHttpRequest.

Это достаточно или мне нужно?проверить другие возможности?

1 Ответ

1 голос
/ 24 февраля 2012

Похоже, что этой проверки достаточно (http://www.w3.org/TR/XMLHttpRequest/). readyState равно 4, если передача данных была завершена или во время передачи произошла ошибка.

Убедитесь, что вы установили какое-то разумное значение для тайм-аута (по умолчанию 0, то есть тайм-аут).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...