XMLHttpRequest.addEventListener vs XMLHttpRequest.upload.add



该代码块之间有什么区别:

var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "upload_url");
xhr.send(some_form_data);

和此:

var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.upload.addEventListener("load", uploadComplete, false);
xhr.upload.addEventListener("error", uploadFailed, false);
xhr.upload.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "upload_url");
xhr.send(some_form_data);

我已经看到了博客和其他SO帖子中的两个实现,但是没有人解释为什么它们使用另一个。目前,我能找到的唯一区别是,后者在默认的Android浏览器上不起作用,而前者似乎在几乎所有功能上都可以使用。

根据有关XMLHTTPREQUEST的W3C规范。http://www.w3.org/tr/xmlhttprequest/#the-upload-attribute

如前所述,每个xmlhttprequest对象都有关联的xmlhttprequestupload对象。

下载和上传传输都存在进度事件。如上所述,下载事件是在XMLHTTPRequest对象本身上发射的。上传事件在XMLHTTPREQUEST.UPLOAD对象

上触发

最新更新