1
var _xhr2 = new XMLHttpRequest();

_xhr2.upload.addEventListener('progress', function(e){ //#1
   console.log('progress');       
}, false);

_xhr2.upload.onprogress = function(e){ //#2
    console.log('progress'); 
};

_xhr2.open('POST', '/fileupload');
_xhr2.send(formData);

#1有人可以解释一下和#2上面的区别。哪一个比另一个更受欢迎?因为两者似乎都有效。

我问的原因是因为我正在玩一些 HTML5 文件阅读器 + XHR2 上传,以及在 MDN 示例中FileReader()使用的实例#2,而XMLHttpRequest()使用#1

4

1 回答 1

1

好吧,声明onprogress属性将覆盖以前绑定到它的处理程序,这很明显,这不是你的问题,因为你只将它绑定到新的对象实例。

我认为唯一的区别是 IE 兼容性。addEventListenerIE9+支持,而 IE5.5+ 支持onprogress属性(以及其他on...属性)。

注意
IE 9 之前的旧版本attachEvent使用addEventListener.

于 2013-10-31T21:58:21.680 回答