雖然今年的谷歌I/O大會(huì)沒有出現(xiàn)像去年谷歌眼鏡發(fā)布時(shí)直播瘋狂跳傘這樣的活動(dòng),但是上周仍然有不少產(chǎn)品推出。
谷歌宣布對(duì)谷歌地圖、搜索、安卓,以及其他很多產(chǎn)品做出更新,谷歌還花了一些時(shí)間談了談web組件。谷歌公司的Sundar Pichai指出,這項(xiàng)技術(shù)目前仍然處于初級(jí)階段,但他同時(shí)也說道,他認(rèn)為“web組件的前景是非常明確的”,開發(fā)者可以利用這項(xiàng)技術(shù)開發(fā)出“可在各種形式下運(yùn)行的用戶界面”。
對(duì)于眾多Chrome開發(fā)者而言,web組件顯然是一個(gè)距離Chrome核心最近的主題。舉個(gè)例子,在本周的一次爐邊會(huì)議上,許多業(yè)界人士都認(rèn)為web組件是Chrome最主要的功能之一。
目前,許多谷歌工程師正在努力開發(fā)Project Polymer,這些工程師的目標(biāo),是編寫出一個(gè)網(wǎng)頁應(yīng)用框架,程序員不僅可以在這個(gè)框架上構(gòu)建web組件,而且可以利用web組件,在瀏覽器上構(gòu)建出目前技術(shù)無法實(shí)現(xiàn)的一些功能。
在本屆谷歌I/O大會(huì)上,web組件技術(shù)已經(jīng)出露端倪,比如WebGL,還有其他一些已經(jīng)建立的網(wǎng)頁開發(fā)技術(shù)。非常明顯,谷歌相信,web組件技術(shù)正潛在地改變著程序員編寫未來網(wǎng)web應(yīng)用的方式。
那么,這意味著什么呢?本質(zhì)上來說,web組件可以為程序員提供一種更簡單的方式,依靠HTML,CSS以及JavaScript這些已知的語言,他們可以構(gòu)建出網(wǎng)站,并能在網(wǎng)站上開發(fā)出可循環(huán)使用的小功能。而web組件背后的理念早已經(jīng)出現(xiàn)(數(shù)年前,微軟就支持過類似的創(chuàng)新,但是他們沒有成功),不過即使到今天為止,這項(xiàng)技術(shù)對(duì)大多數(shù)人而言仍然比較陌生。
通過智能組件模式構(gòu)建獨(dú)立頁面的大型網(wǎng)頁應(yīng)用,在今天也并非易事。web組件可以幫助程序員封裝他們的HTML,CSS,以及JavaScript,這樣這些應(yīng)用程序?qū)W(wǎng)頁上的其他功能就不會(huì)產(chǎn)生影響,同理,網(wǎng)頁上的其他功能也不會(huì)調(diào)停應(yīng)用程序。
值得注意的是,程序員無法依靠組件在所有瀏覽器上工作。Chrome Canary包括了對(duì)web組件的支持,但是它是隱藏在許多flags屬性后面的。Mozilla也很有可能在最近增加其火狐瀏覽器的相關(guān)支持功能。最重要的是,谷歌的Polymer項(xiàng)目,就是希望可以利用他們開發(fā)polyfill框架,把web組件的概念應(yīng)用在所有瀏覽器上。
網(wǎng)頁組件依靠四大件——模板元素,裝飾模式(decorators:將模板應(yīng)用到CSS上),自定義元素(允許程序員創(chuàng)建自己的元素),以及Shadow DOM(雖然這個(gè)名字不怎么好聽,但是它真的只是定義了如何將不同的網(wǎng)頁部分拼湊在一起,而且在必要的時(shí)候,還能從常規(guī)DOM中保護(hù)其他三個(gè)網(wǎng)頁組件)
把上述四大件放在一起,包括自定義元素,程序員可以很快創(chuàng)建自己的HTML標(biāo)簽,他們還可以擴(kuò)展已有的元素。此外,web組件還能讓程序員更加便捷的分類內(nèi)容, Shadow DOM則確保了你創(chuàng)建的網(wǎng)頁樣式不會(huì)受到網(wǎng)站其他部分的調(diào)停,因?yàn)槭褂脀eb組件創(chuàng)建的應(yīng)用就可以做到這一點(diǎn)。
所有這一切,聽起來似乎不是那么豐滿,但是如果能抓住其核心(程序員沒有理由不抓住),這將會(huì)改變程序員編寫網(wǎng)頁應(yīng)用的方式(谷歌的Eric Bidelman稱之為“網(wǎng)頁開發(fā)構(gòu)造性的改變”)。加上web組件固有的優(yōu)勢,也將進(jìn)一步提升用戶的網(wǎng)頁瀏覽體驗(yàn)。最后,雖然這代表了一種全新的網(wǎng)頁應(yīng)用編寫方式,但在這場革命完成之前,業(yè)界可能還需要一些時(shí)間過渡。