iOS 5中safari带来的新特性

随着iPhone4s的发布,iOS5也正是发布了,增加了很多很有用的新特性,不过对于前端开发者来说,最关心的还是浏览器,让我们来看一下苹果为iOS5中的safari新增了哪些新特性吧。

CSS

  • 终于支持position:fixed了;
  • 支持overflow:scroll了,通过-webkit-overflow-scrolling: touch;来实现: selector{ overflow:scroll; -webkit-overflow-scrolling: touch; }
  • CSS3 gradient语法更新,将-webkit-gradient(linear|radial)拆分为,-webkit-linear-gradient和-webkit-radial-gradient。PS,年初发表过一篇关于《webkit对于CSS3渐变样式语法的更新》的文章,看来现在就剩下android的webkit了。

HTML5

  1. 新的兼容HTML5的解释器(parser)
  2. 表单增强新增时间类型date, datetime, month, time和range支持,好赞:

同时iOS5中safari也增强了number类型的input的验证功能。

  • 支持web workers ,传说iOS3中短暂出现过web workers,不过后来消失了,现在又回来了。。。
  • 增强ECMAScript5,测试结果显示支持情况跟上PC版的Safari 5.1了。
  • 终于支持contenteditable属性
  • 支持async script

其它特性:

  • HTTP Pipelining支持,Android中webkit和Opera都支持了,Mobile Safari也跟进了。想要具体了解的可以看下这里这里
  • inline SVG
  • UIWebView 和主屏幕webapp升级到Nitro引擎(看下面的测试数据)
  • 支持MathML
  • CSS和其它文件不再并行下载,这貌似挺悲剧的,不过我很感兴趣这和HTTP Pipelining的关系。。。
  • GPU硬件加速,虽然这个之前也有,但是效果并不是很显著,现在,在微软用于标榜IE9硬件加速的测试中,iOS达到了40FPS,而Windows Phone 7是24FPS,Nexus 2则只有可怜的10FPS——iOS4中只有2FPS。。。

一些测试数据

  • HTMLTest:267分,iOS 4.3中是206分
  • Sunspider JS Benchmark,JS性能测试:

可见首页webapp是用上Nitro引擎了,但是悲剧的是UIWebView的性能却下降了。

PS:中间的home screen page,@Jeanne 美女说是主屏幕,不过我的理解就是webapp,如有更好的翻译欢迎讨论。

总结

可以看出iOS 5中Safari改进还是蛮大的,而从最后webapp和UIWebView的性能测试来看,或许苹果更加重视了webapp,而不太赞成UIWebView+webapp的这种混搭的方式,虽然很多流行的app都是这种实现,比如著名的PhoneGap框架和Facebook/twitter等流行的在国内不能用的APP。。

参考资源: