在IE10问世之前,收到过很多开发者的批评,说IE版本升级如此勤快,但是作为HTML 5的核心之一,XMLHTTPRequest组件,却仅仅支持W3C老旧的规范而不思进取。其原因么,正如Eric Lawrence在COMET Streaming in Internet Explorer一问中指出的,IE中的XMLHTTPRequest是MSXML里面的XMLHTTP的的简单封装而已,并非原生。而MSXML开发小组则专注于操作系统里面XML的功能的开发与增强,XMLHTTP这个阴差阳错加入到MSXML里面插班生,自然受到的照顾要少许多。具体的八卦,请参考XMLHTTP的故事一文。
言归正传。由于Win 8 这个划时代的操作系统把JavaScript变成了一等公民,除了能够使用所有的WinRT函数之外,还需要能够使用新的HTML 5 API,以便把现有的web app移植到Win 8上成为原生应用,对XMLHTTPRequest的加强便提到了议事日程上。最终MSXML小组把XMLHTTP的代码移植到了XMLHTTPRequest中,并且加入了对Blob、Comet、Event、Form Data、Typed Array等的支持,几乎完美地支持了W3C最新规范,从W3C标准兼容性角度而言是众浏览器中做得最好的。
之所谓尘归尘土归土,XMLHTTPRequest经历一个大大的轮回,终于回到了IE的怀抱。