XHR2 addEventListener vs property


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

最新更新