获取XmlHttpRequest的部分结果会冻结IE 11中的浏览器

时间:2014-07-29 14:02:37

标签: javascript ajax internet-explorer xmlhttprequest

我有一个从XmlHttpRequest读取数据的脚本,偶尔会调用它已读取的数据的指定回调。这样做是为了让用户无需下载整个文件即可开始查看。

因此,在发送请求后,我为readystatechange事件添加了处理程序,简化后,如下所示:

request.onreadystatechange = function () {
    if (request.readyState !== 3 && request.readyState !== 4 || request.status !== 200) {
        return;
    }

    var responseText = request.responseText;
    if (responseText.length === 0) {
        return;
    }

    if (stream.offset + responseText.length > stream.processed) {
        var chunk = responseText.substring(stream.processed - stream.offset);
        stream.processed += chunk.length;
        stream.callback(chunk);
    }
};

它在Chrome 36和Firefox 31中运行良好,但在IE 11中,页面会冻结一分钟。

所以我运行了探查器,这里的第一行是 profiler result

所以我的问题是:为什么需要这么多时间来访问responseText以及我该怎么办呢?

0 个答案:

没有答案