實(shí)施Web標(biāo)準(zhǔn)明顯落后 Safari或成新時(shí)代的IE

作者: khmnre  2015-07-06 15:57 [查查吧]:www.uabf.cn

  Web開(kāi)發(fā)者諾蘭·勞森(Nolan Lawson)近日撰文指出,蘋果在實(shí)施Web標(biāo)準(zhǔn)上明顯落后于其它的主流瀏覽器開(kāi)發(fā)商,不少新興的API技術(shù)在Safari上都不見(jiàn)蹤影,Safari儼然成了新時(shí)代的IE。

  “屋子里的大象”

  倒有一家公司沒(méi)有出席,他們可以說(shuō)是沒(méi)有人愿意提及的那個(gè)“屋子里的大象”。大家并沒(méi)有直呼其名,而是稱其為“某家加州公司”或者“某家水果公司”。研討室中的筆記本幾乎都閃耀著那家公司奪目的logo,但卻沒(méi)有一人敢于說(shuō)出它的名字。沒(méi)錯(cuò),說(shuō)的正是蘋果。

  Web開(kāi)發(fā)者普遍覺(jué)得Safari落后于其它的瀏覽器,而身處像EdgeConf這樣的會(huì)議,你對(duì)此甚至?xí)懈訌?qiáng)烈的感覺(jué),你會(huì)驚訝于它與其它瀏覽器的差距之巨。上面提到的API目前無(wú)一實(shí)施于Safari,蘋果也似乎沒(méi)什么意愿那么做。

  即便蘋果真的采用新出的API,他們也往往只是隨便糊弄而已。就以IndexedDB為例,IndexedDB在5年多以前便被提出,2012年開(kāi)始出現(xiàn)在IE、Firefox和Chrome上。而蘋果直到2014年年中才推出IndexedDB,無(wú)奈他們的實(shí)施卻出乎意料的糟糕,大家普遍覺(jué)得沒(méi)什么用處。

  如今,一年過(guò)后,蘋果修復(fù)了IndexedDB數(shù)個(gè)大漏洞中的兩個(gè)。他們聲稱IndexedDB不值得花功夫去做,因?yàn)樗?ldquo;派不上大用場(chǎng)”。要是瀏覽器支持方面做得一塌糊涂,當(dāng)然沒(méi)有人會(huì)去使用IndexedDB啦。

  很難理解蘋果為什么會(huì)那樣。他們從不派人去參加Web相關(guān)的大會(huì),他們的Safari博客也鮮有更新,因而在一年一度的WWDC(全球開(kāi)發(fā)者大會(huì))開(kāi)幕之前,沒(méi)有人知道下一代的Safari會(huì)長(zhǎng)什么樣子。感覺(jué)上,蘋果儼然圣誕老人——一年降臨一次給大家發(fā)些備受期待的禮物,至于派什么禮物就無(wú)從得知了。老實(shí)說(shuō),那些禮物近年來(lái)也越來(lái)越小份了,沒(méi)什么驚喜。

  近些年,蘋果Web方面的戰(zhàn)略最多只能說(shuō)是“仁慈的忽視”。雖然憑借JSCore和全新的WKWebView,性能上有了巨大的提升,但各種新生的Web平臺(tái)特性——線下存儲(chǔ)、推送通知和“可安裝的”網(wǎng)頁(yè)應(yīng)用,Safari卻一個(gè)都沒(méi)有。這讓人容易將此解讀為蘋果故意破壞任何對(duì)其App Store商業(yè)模式的威脅,但這種說(shuō)法似乎也說(shuō)不過(guò)去,畢竟那部分業(yè)務(wù)基本收支平衡。另一種可能性是,他們只是在響應(yīng)iOS開(kāi)發(fā)者的要求——基本上就是:1)引入更多的原生API;2)快速,快速,快速。鑒于蘋果一向?qū)?nèi)部事宜三緘其口,真相究竟如何誰(shuí)也說(shuō)不準(zhǔn)。

  又一個(gè)IE?

  事實(shí)上,蘋果一直以來(lái)都不是Web的質(zhì)疑者。2010年,喬布斯便曾公開(kāi)諷刺Flash,稱HTML5才是未來(lái)。蘋果當(dāng)時(shí)可謂Web的虔誠(chéng)信徒。很多幫助網(wǎng)頁(yè)應(yīng)用追趕上本地應(yīng)用的早期特性,如ApplicationCache、WebSQL、觸控事件和觸控圖標(biāo),得到了開(kāi)發(fā)者的熱情擁抱,當(dāng)中甚至有很多都源自蘋果。

  同期WebSQL遭棄用,被IndexedDB取而代之的時(shí)候,其實(shí)有不少的蘋果員工站出來(lái)積極予以擁護(hù),稱其對(duì)于網(wǎng)頁(yè)應(yīng)用的高效運(yùn)行不可或缺。從那些爭(zhēng)論可以明顯感覺(jué)得到蘋果內(nèi)部在IndexedDB勝出后的巨大失落感。諷刺的是,蘋果幾乎是給了開(kāi)發(fā)者削弱其專有平臺(tái)的各種工具,而反過(guò)來(lái),開(kāi)發(fā)者排斥WebSQL,則給了他們重新思考戰(zhàn)略和叫停任何Web API新進(jìn)展的機(jī)會(huì)。

  Application Cache也面臨著類似的情況,在不久的將來(lái)它可能會(huì)被Service Worker取而代之。蘋果對(duì)于Web還很有興致的時(shí)候,它一度贏得廣泛的瀏覽器支持。不幸的是,它只是個(gè)匆匆推出的半成品。要是蘋果還是跑在其它公司身后,恐怕Service Worker也會(huì)遭受IndexedDB般的命運(yùn)。

  現(xiàn)階段,Web社區(qū)需要接受這樣一個(gè)事實(shí):Safari成為了新時(shí)代的IE。微軟最近痛改前非,谷歌在Web領(lǐng)域一馬當(dāng)先,Mozilla一如既往地快步前行。而蘋果則像是在一旁獨(dú)自唱著悲歌。我們是時(shí)候公開(kāi)探討這個(gè)問(wèn)題了,而不是顯得很忌諱,避而不談。蘋果是世界上最具價(jià)值的公司,他們還是承受得起一些打擊的。

  何以應(yīng)對(duì)?

  那么,當(dāng)一家完全控制iOS平臺(tái)的主流瀏覽器提供商仍然堅(jiān)守2010年的模式,表現(xiàn)得若無(wú)其事的時(shí)候,Web社區(qū)能夠做些什么呢?我認(rèn)為有三個(gè)主要的解決機(jī)制:

  1)堅(jiān)守2010年行得通的東西,并使用Polyfills來(lái)支持Safari。通過(guò)使用AppCache和PouchDB,你可以得到跟Service Worker幾乎一模一樣的特性。這種方案應(yīng)該能夠吸引絕大多數(shù)的Web開(kāi)發(fā)者。另一方面,這也不失為倒逼蘋果,讓他們有動(dòng)力去進(jìn)行技術(shù)升級(jí)強(qiáng)化的好方法。

  2)使用Service Worker等在Safari上不好使的技術(shù),將其視作推動(dòng)行業(yè)進(jìn)步。阿萊克斯·拉塞爾(Alex Russell)在“可安裝的網(wǎng)頁(yè)應(yīng)用”研討會(huì)上發(fā)表了一個(gè)很好的觀點(diǎn):如果我們開(kāi)發(fā)出了大量使用Service Worker的免費(fèi)網(wǎng)頁(yè)應(yīng)用,而且這些應(yīng)用在Android上運(yùn)行得非常好,而在iOS上只能湊合著用,那蘋果就會(huì)有興趣采用Service Worker,支持該API。只不過(guò),雖然整體來(lái)說(shuō)這對(duì)于Web社區(qū)而言室最好的結(jié)果,但要說(shuō)服開(kāi)發(fā)者去編寫只能覆蓋一半受眾的代碼絕非易事。

  3)為WebKit做貢獻(xiàn)。Safari的核心部分畢竟還是開(kāi)源項(xiàng)目,因而C++開(kāi)發(fā)者沒(méi)有理由不去親自實(shí)施那些新生的API。該方案主要的問(wèn)題在于,WebKit并非Safari,蘋果還是可以決定不在他們的旗艦級(jí)瀏覽器實(shí)施WebKit特性。說(shuō)回IndexedDB,它早早就獲得了谷歌的完好實(shí)施,蘋果前幾年完全可以直接納入谷歌的實(shí)施,但他們卻遲遲沒(méi)有行動(dòng),最終自己弄了個(gè)漏洞百出的版本。很難保證他們對(duì)于其它的外部貢獻(xiàn)做出同樣的事情。

  以上是給大家介紹的實(shí)施Web標(biāo)準(zhǔn)明顯落后:Safari或成新時(shí)代的IE,希望對(duì)您有所幫助!

?
    發(fā)表評(píng)論

    醫(yī)療健康