如何捕获XMLHttpRequest的所有终止

时间:2012-02-22 15:45:29

标签: javascript ajax xmlhttprequest

我有一个条件,必须在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 个答案:

答案 0 :(得分:1)

看起来这个检查已经足够了(http://www.w3.org/TR/XMLHttpRequest/)。如果数据传输已完成或传输过程中出现错误,则readyState为4。

确保为超时设置了一些合理的值(默认值为0,即没有超时)。