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
。
好吧,声明onprogress
属性将覆盖绑定到它的先前处理程序,这是显而易见的,这不是您的问题,因为您仅将其绑定到新的对象实例。
我认为唯一的区别是IE兼容性。 IE9+ 支持addEventListener
,而 IE5.5+ 支持onprogress
属性(以及其他on...
属性)。
注:
旧版本的IE版本高于9使用attachEvent
而不是addEventListener
。