好的,我解决了这个问题。最后我fork了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分支。
var progressEvent = {lengthComputable: false, loaded: 0, total: 0};
。唯一会发生变化的字段是'loaded',因为内容长度是不可计算的(因此total=0)。 - Rowan