XHR2 addEventListener vs property

时间:2013-10-31 21:48:28

标签: javascript html5

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

1 个答案:

答案 0 :(得分:1)

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

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

注意
较早版本的IE使用attachEvent代替addEventListener