3

简短版本:

我想让这个和这个一起工作:

长版:

我想创建一个 jQuery 扩展,为 $.ajax 对象添加一个进度方法,并与 IE8 和 IE9 的 XDomainRequest 对象一起使用。

目前,使用上述插件,我只能为 XMLHttpRequest 对象定义进度事件回调处理程序。

但是,XDomainRequest 也提供了一个 onprogress 事件。我基本上需要 XDomainRequest 的包装器。例如。progressEvent.length 将对应于 xdr.responseText.length。

我很感激任何关于从哪里开始的建议。

4

1 回答 1

4

好吧,我解决了这个问题。我最终派生了通过 ajax 传输器实现 XDomainRequest 的 ajaxHooks

我添加了对名为“progress”的 onprogress 事件回调的支持,该回调可以用原始 ajax 对象定义。

根据 W3C 标准,progressEvent.lengthComputable = false 因为我们无法获取内容长度,因此 progressEvent.total = 0;

请参见下面的示例:

$(document).ready(function(){

    var download_url = YOUR_URL;

    $.ajax({

        url: download_url,
        cache: false,
        progress: function(jqXHR, progressEvent) {

            console.log(progressEvent.loaded);

        }
    })
});

在这里查看我的ajaxHooks fork

于 2012-09-06T00:36:15.397 回答