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上传,而在FileReader()
的MDN示例实例中使用#2
,而XMLHttpRequest()
使用#1
。
答案 0 :(得分:1)
好吧,声明onprogress
属性将覆盖绑定到它的先前处理程序,这很明显,并且在你的情况下这不是问题,因为你只将它绑定到新的对象实例。
我认为唯一的区别是IE兼容性。 IE9 +支持addEventListener
,而IE5.5 +支持onprogress
属性(以及其他on...
属性)。
注意:
较早版本的IE使用attachEvent
代替addEventListener
。