Javascript XMLHttpRequest上传属性的好处到底是什么?

Javascript XMLHttpRequest上传属性的好处到底是什么?,javascript,upload,xmlhttprequest,progress,addeventlistener,Javascript,Upload,Xmlhttprequest,Progress,Addeventlistener,我试图弄清楚upload属性在XMLHttpRequest对象中的确切作用。在我看来,不管有没有它,xhr事件侦听器都会监视xhr.send(文件) 我查看了W3C,发现: “upload属性必须返回关联的XMLHttpRequestUpload对象。” 但我不明白这与使用xhr.upload.addEventListener(“progress”,progressFunction,false)有什么关系自xhr.addEventListener(“progress”,progressFunct

我试图弄清楚upload属性在
XMLHttpRequest
对象中的确切作用。在我看来,不管有没有它,
xhr
事件侦听器都会监视
xhr.send(文件)

我查看了W3C,发现: “upload属性必须返回关联的XMLHttpRequestUpload对象。”

但我不明白这与使用
xhr.upload.addEventListener(“progress”,progressFunction,false)有什么关系
xhr.addEventListener(“progress”,progressFunction,false)也会做同样的事情


我这样问是因为我想为上传的进度创建自定义图形……我不打算使用HTML5进度元素或jquery。客户端严格使用Javascript。

如果将事件附加到
xhr
本身,则仅在上载完成时更新
“进度”


xhr
对象与专门用于上载的对象之间存在差异。

根据“下载事件在
XMLHttpRequest
对象本身上触发(…)上载事件在
XMLHttpRequest.upload
对象上触发”。我不确定它们是否完全相同。
XMLHttpRequestUpload
object!=
XMLHttpRequest
object哇,奇怪……我想既然upload是XMLHttpRequest对象的一个属性,它们就属于同一个对象
它们不是同一个对象——根据Chrome的说法,在类型检查中,
upload
实际上是一个
XMLHttpRequestUpload
对象。它也不扩展
.open
.send
等方法。它是一个对象,订阅本机级别(特定于浏览器)代码的进度,并调用其事件订阅者的更新(如
onprogress | onload start | onload end | onload | onerror | onabort
)。我认为,就终端用户而言,这几乎就是它的全部工作。但是它又开始重做XHRAPI了,我想知道更多关于这个主题的信息,特别是一个包含细节的参考链接。我没有在MDN上看到任何东西。