隨著iPhone4s的發(fā)布,iOS5也正是發(fā)布了,增加了很多很有用的新特性,不過(guò)對(duì)于前端開(kāi)發(fā)者來(lái)說(shuō),最關(guān)心的還是瀏覽器,讓我們來(lái)看一下蘋(píng)果為iOS5中的safari新增了哪些新特性吧。
CSS
- 終于支持position:fixed了;
- 支持overflow:scroll了,通過(guò)-webkit-overflow-scrolling: touch;來(lái)實(shí)現(xiàn):
1 2 3 4
selector{ overflow:scroll; -webkit-overflow-scrolling: touch; }
- CSS3 gradient語(yǔ)法更新,將-webkit-gradient(linear|radial)拆分為,-webkit-linear-gradient和-webkit-radial-gradient。PS,年初發(fā)表過(guò)一篇關(guān)于《webkit對(duì)于CSS3漸變樣式語(yǔ)法的更新》的文章,看來(lái)現(xiàn)在就剩下android的webkit了。
HTML5
- 新的兼容HTML5的解釋器(parser)
- 表單增強(qiáng)新增時(shí)間類(lèi)型date, datetime, month, time和range支持,好贊:
同時(shí)iOS5中safari也增強(qiáng)了number類(lèi)型的input的驗(yàn)證功能。
- 支持web workers,傳說(shuō)iOS3中短暫出現(xiàn)過(guò)web workers,不過(guò)后來(lái)消失了,現(xiàn)在又回來(lái)了。。。
- 增強(qiáng)ECMAScript5,測(cè)試結(jié)果顯示支持情況跟上PC版的Safari 5.1了。
- 終于支持contenteditable屬性
- 支持async script
其它特性:
- HTTP Pipelining支持,Android中webkit和Opera都支持了,Mobile Safari也跟進(jìn)了。想要具體了解的可以看下這里和這里。
- inline SVG
- UIWebView 和主屏幕webapp升級(jí)到Nitro引擎(看下面的測(cè)試數(shù)據(jù))
- 支持MathML
- CSS和其它文件不再并行下載,這貌似挺悲劇的,不過(guò)我很感興趣這和HTTP Pipelining的關(guān)系。。。
- GPU硬件加速,雖然這個(gè)之前也有,但是效果并不是很顯著,現(xiàn)在,在微軟用于標(biāo)榜IE9硬件加速的測(cè)試中,iOS達(dá)到了40FPS,而Windows Phone 7是24FPS,Nexus 2則只有可憐的10FPS——iOS4中只有2FPS。。。
一些測(cè)試數(shù)據(jù)
- HTMLTest:267分,iOS 4.3中是206分
- Sunspider JS Benchmark,JS性能測(cè)試:
可見(jiàn)首頁(yè)webapp是用上Nitro引擎了,但是悲劇的是UIWebView的性能卻下降了。
PS:中間的home screen page,@Jeanne 美女說(shuō)是主屏幕,不過(guò)我的理解就是webapp,如有更好的翻譯歡迎討論。
總結(jié)
可以看出iOS 5中Safari改進(jìn)還是蠻大的,而從最后webapp和UIWebView的性能測(cè)試來(lái)看,或許蘋(píng)果更加重視了webapp,而不太贊成 UIWebView+webapp的這種混搭的方式,雖然很多流行的app都是這種實(shí)現(xiàn),比如著名的PhoneGap框架和 Facebook/twitter等流行的在國(guó)內(nèi)不能用的APP。。