近期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,但是微软并不希望实现这些(策略考虑)。
我们当然希望这样。
【编辑推荐】