对于众多Chrome开发者而言,web组件显然是一个距离Chrome核心最近的主题。举个例子,在本周的一次炉边会议上,许多业界人士都认为web组件是Chrome最主要的功能之一。
目前,许多谷歌工程师正在努力开发Project Polymer,这些工程师的目标,是编写出一个网页应用框架,程序员不仅可以在这个框架上构建web组件,而且可以利用web组件,在浏览器上构建出目前技术无法实现的一些功能。
在本届谷歌I/O大会上,web组件技术已经出露端倪,比如WebGL,还有其他一些已经建立的网页开发技术。非常明显,谷歌相信,web组件技术正潜在地改变着程序员编写未来网web应用的方式。
那么,这意味着什么呢?本质上来说,web组件可以为程序员提供一种更简单的方式, 依靠HTML,CSS以及JavaScript这些已知的语言,他们可以构建出网站,并能在网站上开发出可循环使用的小功能。而web组件背后的理念早已 经出现(数年前,微软就支持过类似的创新,但是他们没有成功),不过即使到今天为止,这项技术对大多数人而言仍然比较陌生。
通过智能组件模式构建独立页面的大型网页应用,在今天也并非易事。web组件可以帮助程序员封装他们的HTML,CSS,以及JavaScript,这样这些应用程序对网页上的其他功能就不会产生影响,同理,网页上的其他功能也不会调停应用程序。
值得注意的是,程序员无法依靠组件在所有浏览器上工作。Chrome Canary包括了对web组件的支持,但是它是隐藏在许多flags属性后面的。Mozilla也很有可能在最近增加其火狐浏览器的相关支持功能。最重 要的是,谷歌的Polymer项目,就是希望可以利用他们开发polyfill框架,把web组件的概念应用在所有浏览器上。
网页组件依靠四大件——模板元素,装饰模式(decorators:将模板应用到 CSS上),自定义元素(允许程序员创建自己的元素),以及Shadow DOM(虽然这个名字不怎么好听,但是它真的只是定义了如何将不同的网页部分拼凑在一起,而且在必要的时候,还能从常规DOM中保护其他三个网页组件)
把上述四大件放在一起,包括自定义元素,程序员可以很快创建自己的HTML标签,他 们还可以扩展已有的元素。此外,web组件还能让程序员更加便捷的分类内容, Shadow DOM则确保了你创建的网页样式不会受到网站其他部分的调停,因为使用web组件创建的应用就可以做到这一点。
所有这一切,听起来似乎不是那么丰满,但是如果能抓住其核心(程序员没有理由不抓 住),这将会改变程序员编写网页应用的方式(谷歌的Eric Bidelman称之为“网页开发构造性的改变”)。加上web组件固有的优势,也将进一步提升用户的网页浏览体验。***,虽然这代表了一种全新的网页应 用编写方式,但在这场革命完成之前,业界可能还需要一些时间过渡。