【问题标题】:XmlHttpRequest Progress Eventhandler Compatibility in Internet ExplorerInternet Explorer 中的 XmlHttpRequest 进度事件处理程序兼容性
【发布时间】:2013-06-21 22:39:53
【问题描述】:

我当前使用 jQuery 的 AJAX 应用程序如下所示(简化):

$.ajax({
    url: '/somefile',
    timeout : timeOutVar,
    success: function(data) {
        console.log('success');
    },
    error: function(data) {
        console.log('error');
    }
});

我更新了该代码以使用progress 事件处理程序,如下所示。

$.ajax({
    url: '/somefile',
    timeout : timeOutVar,
    success: function(data) {
        console.log('success');
    },
    error: function(data) {
        console.log('error');
    },
    xhr: function() {
        var xhr = new window.XMLHttpRequest();
        xhr.addEventListener("progress", function(evt){
            console.log('progress');
        }, false);
        return xhr;
    }
});

这在 Internet Explorer 10 和所有其他现代浏览器中都能完美运行。但是,在较旧的 Internet Explorer 版本中,我遇到了一个问题。 IE9、8、7 不调用progress 事件处理程序,而是在加载所有内容时调用success

所以我想知道这些旧 Internet Explorer 版本是否存在兼容性问题。不幸的是,我找不到任何资源来准确定义XmlHttpRequest 的哪些部分在哪个 IE 版本中工作。有人知道这样的资源或代码中可能有什么问题吗?

【问题讨论】:

    标签: javascript jquery internet-explorer xmlhttprequest progress


    【解决方案1】:

    您可以同时使用 beforeSendcomplete 回调来覆盖 xhr 实现。

    【讨论】:

    • beforeSend 中定义progress 事件处理程序不起作用,可能是因为jQuery 本身不支持progress
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-15
    相关资源
    最近更新 更多