谷歌:web組件才是web開發(fā)的未來?
對于眾多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ù)對大多數(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包括了對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í)間過渡。