Osc*_*car 37 javascript ajax xmlhttprequest
我正在使用XmlHttpRequests将图像上传到服务器,我想向用户显示这些上传的进度.
不幸的是,对onprogress-event处理程序的调用之间的间隔太大.对于500k图像,通常只对onprogress调用一次或两次.
这是我的代码:
/* This function is not called often enough */
function progress(e){
console.log('Uploading: ' + Math.round((e.loaded / e.total) * 100) + ' %');
}
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener('progress', progress, false);
xhr.send(data);
Run Code Online (Sandbox Code Playgroud)
可以改变这种行为,还是在浏览器实现中将其硬编码?
Mat*_*ner 33
W3在其XMLHttpRequest Level 2文档中阐述了以下准则.显然,跨浏览器的一致性水平会有所不同.
上传:
在上载请求实体主体并且上载完成标志为false时,将任务排队以在XMLHttpRequestUpload对象上大约每50ms或每个传输的字节触发一个名为progress的progress事件,以最不频繁的为准. - W3 XMLHttpRequest Level 2(重点强调)
下载:
当据说进行进度通知时,在下载正在进行时,将任务排队以每50ms或每收到一个字节触发一个名为progress的进度事件,以最不频繁的为准. - W3 XMLHttpRequest Level 2(重点强调)
我不知道api来定制这个功能.