jQuery $ .ajax扩展XDomainRequest onprogress

时间:2012-09-05 05:43:27

标签: javascript jquery xdomainrequest

简短版本:

我想让thisthis合作:

长版:

我想创建一个jQuery扩展,为$ .ajax对象添加一个进程方法,该方法适用于IE8& IE9的XDomainRequest对象。

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

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

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

1 个答案:

答案 0 :(得分:4)

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

我添加了对名为“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