简短版本:
我想让this与this一起工作:
较长版本:
我想创建一个jQuery扩展,它向$ .ajax对象添加一个progress方法,并且可以与IE8和IE9的XDomainRequest对象一起使用。
当前,使用上述插件,我只能为XMLHttpRequest对象定义进度事件回调处理程序。
但是,XDomainRequest还提供了一个onprogress事件。我基本上需要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 fork。