评IE10对HTML5的完美支持

近期Windows 8的消息充斥着整个网络。微软将IE10集成在系统中,并且宣称IE10会很好的支持 HTML5。本文是对IE10支持HTML5的研究报告。

预览:HTML5初探

在过去的几年里我们做了一系列测试来评估主要的移动平台对HTML5应用的支持。直到现在,我们仍旧没有花时间在Windows phones上,主要因为Windows Phone7浏览器太弱根本不值得评估。但是,在上周的Windows Build会议上我们得到一个开发者预览的平板电脑(运行了Windows8和IE10)。我们想分享一下我们对HTML5用户体验的第一印象。简单的说(and with the caveat that we were running on the notably overpowered developer preview hardware),IE10的HTML5用户体验是我们接触到的所有平台上最好的。十年Web领域疲软后,微软复仇归来。

Windows8 Web平台

在我们进入Win8和IE10对HTML5的支持细节之前,很值得回顾一下Windows8的一些概要。Windows8代表微软在策略上的一个大 的转变,因为它使得Web技术成为Windows原生应用的首选。用Javascript、HTML、CSS开发的应用可以被构建为Windows原生应 用了。

Windows的图形、IO、设备核心服务访问,JavaScript都有和.NET以及C++的等效绑定。微软的消息是你可以使用web技术构建所有的Windows原生应用。

那么,开发一个简单的基于web的在IE10上运行的应用和开发一个分发到Win8的原生应用有什么不同呢?第一个不同点就是你允许访问的资源和怎 么访问他们。作为一个基于web的应用,你不能访问系统的保护资源如摄像头、打印机等。要把你的web应用打包成一个原生应用,你必须创建许可列表文件来 描述你想访问的受保护资源,然后将你的应用提交到Windows的应用商店。提价后,它将被做一连串的技术和政策检查。尽管还没有完全确定,我们猜猜应用 商店测试将会是微软在Windows平台的一个web技术评估部门。

HTML5支持

IE10里面的新特性有哪些呢?太多了,明显的部分包括UI元素和特效。IE10预览支持几乎所有最近三年引入可视化HTML5和CSS3特性。IE9微软已经注意了几个方面能力的提升如主要是硬件加速、画布等几个特性,但是IE10引入更多:

CSS转变:2D和3D高效平滑转换。3D转换和抗锯齿很明显好于许多其他的浏览器。还有转换的平滑度给人印象深刻,可能是硬件加速的原因吧

CSS动画:完全支持WebKit语法,这让我们很机动,因为这意味着Sencha Animator的动画在IE10上运行起来很容易,只需要简单的查找替换(webkit替换为ms)即可

CSS3阴影:文本和盒子都支持(还包括插入物阴影)。合并阴影效果和其他特效将完美无瑕

CSS3倾斜:完全支持新的webki/mozilla语法,允许圆形和椭圆放射倾斜

这仅仅是一个开始。还有web workers、web sockets、web fonts、Indexed DB、SVG滤镜、flexbox布局等。好像只有图片边框没有实现。

微软获得了几个第一

在这些发布的UI特性中,IE10独创了一些在其他浏览器中还没有实现的,如CSS Regions、positioned floats。CSS Regions是一个Adobe做的一个草稿,它可以使报纸样式的布局,实现类似不规则插入、跨多列、让文本围绕浮动的图片。这些对于想在web上发行副本很有用。(最后,微软还推动grid layout,尽管这是其独家实现……)

IE10也有一些针对触摸接口的扩展,控制元素滚动、移动、缩放。如,-ms-content-zooming CSS属性可以控制可缩放元素、-ms-scroll CSS属性可以滚动行为。这些看起来还不是标准行为,所以能看到微软起草覆盖这些新特性也是件好事。

IE10缺少的?

有好几项HTML5技术没有出现在IE10里面,基于微软平台策略考虑,他们可能不会再出现在IE10里面了,WebGL很明显不在菜单里。3D图像,web开发者智能使用JavaScript绑定Windows Direct图形APIs并且只能将他们的应用作为Windows应用发布了。相应的媒体图像和设备APIs也永远不会出现了。这些就是微软希望你通过原生绑定来毁灭的 APIs。

And What Will Ship?

我们对于Win8和IE10很机动,我们认为它结合了HTML5作为标准的跨平台应用开发技术。我们希望我们不再必须使用原生包来访问有趣的设备API,但是微软并不希望实现这些(策略考虑)。

来自: html5中国

你可能感兴趣的:(html5)