jQuery$.ajax扩展程序XDomainRequest

jQuery $.ajax extension XDomainRequest onprogress

本文关键字:程序 XDomainRequest 扩展 ajax jQuery      更新时间:2023-09-26

短版本:

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

长版本:

我想创建一个jQuery扩展,它向$.ajax对象添加了一个progress方法,并与IE8&IE9的XDomainRequest对象。

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

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

如果能给我从哪里开始的建议,我将不胜感激。

好吧,我解决了这个问题。我最终派生了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叉子。