IE9对HTML5中部分属性不支持的原因分析_html5教程技巧
众所周知,在IE9中对于HTML5标准中的离线应用程序以及CSS3中的一部分不提供支持。本文对此做一简要分析。
微软日前已经发布了Internet Explorer 9(以下简称IE9)正式版。在该版本中,微软遵循他们的发展战略,对于作为最新Web标准的HTML5与CSS3中大多数功能提供了支持。
同时,微软也准备将IE9应用在Windows Phone 7中使用。IE9无疑成为了微软的Internet战略中非常重要的一个环节。
但是,现在公布的IE9中,应该被用来与Firefox,Safari,Chrome等浏览器相竞争的HTML5中的几个重大功能却没有得到支持。
现将W3C公布的HTML5以及与其相关的主要功能列举如下:
通信相关(Web Sockets, Server-Sent Events等等)
CSS3样式
设备定位功能(取得地理位置信息等等)
3D以及画面显示效果(WebGL,CSS3的3D功能等等)
多媒体(Audio/Video等等)
性能及功能性的提高(Web Workers,XHR2等等)
语义性(Microdata微数据等等)
离线及本地存储(App Cache,本地存储,IndexedDB等等)
在这之中,即使离线也可以使用Web网页,Web应用程序的功能,使用JavaScript也可以使用多线程的Web Workers,以及CSS3中的几个功能都没有在IE9中得到支持。
应该对于HTML5提供积极支持的微软,为什么没有在IE9中对这几个重要功能提供支持呢?如何这样的话在Windows Phone7中使用IE9又有什么必要呢?这个理由在微软的官方人士那里得到了回答。
提问:首先确认一个事实,IE9中对于HTML5的离线功能等等的确不提供支持吗?
官方回答:的确如此,大致上来说,关于离线功能,以及CSS3中的几个功能,在IE9中并不支持。
首先针对CSS3做一个说明,CSS的属性中的供应商前缀(为了在其他供应商所提供的浏览器中使用而在CSS的属性前增加的“-moz-”,“-webkit-”等等前缀。)在IE9中不提供支持。
在IE9中提倡“统一标记”,就是说同样的属性,标记应该在任何浏览器中的渲染效果应该都是同样的。也就是说为了在各供应商所提供的浏览器中使用而人为增加的各种前缀是不符合这个概念的,所以不提供支持。
还有一个问题就是关于离线应用。这是因为它的一个相关功能IndexedDB的实现方法也还没有被确定下来,所以与之密切相关的离线应用程序功能也暂时不被支持。
现在使用IE的有个人,开发者,企业等等各种客户。因此无论如何对于新的功能提供的支持必须要采取一种保守的做法。
现在我们所提供的支持都是非常安全稳定的,今后也将优先对那些在用户那里获得非常高的渴望度的功能进行支持。
不管什么功能一下子全部提供支持,或者说为了迎合企业用户而特意对某些功能提供支持的话,这种支持是十分不安全、不稳定的,所以我们不希望采取这种做法。
但是,对于IE功能的加强肯定不会停止在IE9这个版本上面,所以我们今后肯定还会对HTML5/CSS3继续提供新的支持。
提问:事实上在IE9中,作为HTML5主要功能之一的离线功能与WebWorker功能没有提供支持这件事是最近被民众所关注的一件事。在宣称对于HTML5提供支持的同时,不说清楚支持什么功能,不支持什么功能,这种宣传不是等于没有吗?
官方回答:并不是要特意隐瞒,应该是在忙于对于IE9这种新的浏览器做一个比较全面地介绍,而没有考虑到这个问题。当然,在对于各API各属性进行单独介绍的时候,肯定是有一个比较明确的说明的。
希望本文所述对大家的HTML5程序设计有所帮助。