在2013年的Google I/O大会上,谷歌公司首次推出了Web UI界面设计套件——Polymer。该工具由加盟谷歌公司的原Palm webOS团队打造,以“一切皆组件、最少化代码量、最少框架限制”为设计理念,意在变革浏览器的操作体验。经过近两年的发展,该团队已经陆续推出了Polymer的若干后续版本。在近日召开的2015年度Google I/O大会上,谷歌正式发布了 Polymer 1.0 版本。
Polymer与W3C Web组件这一社区标准计划紧密相连。传统网页开发都是采用HTML、CSS以及JavaScript等进行混合编程的方式,非常不利于修改、调试以及重用。为了降低开发的复杂度并提高可用性,Web组件计划被提出,并获得所有现代浏览器厂商的支持。谷歌正是基于Web组件的可重用性和简洁性提出了Polymer项目。
Polymer由基础层(Foundation)、核心层(Core)以及元素层(Element)三部分组成。其中,基础层包含了用于监视DOM元素与JavaScript对象改变的DOM Mutation Observer和Object.observe()、处理鼠标和触摸操作的Pointer Event、Shadow DOM、用于自定义HTML5元素的Custom Element、封装自定义元素的HTML Import、在HTML中实现数据绑定的Model-Driven View(MDV)以及统一Web通话实现的API——Web Animation。作为Polymer中关键的组件,基础层的作用在于代替浏览器为上层应用提供统一的API,使得设计可以跨平台使用。核心层利用polymer.js提供了一层代码来表示Polymer选项,用于连接基础层与元素层。元素层包含了Polymer Element和Polymer UI Element,为开发人员设计网页提供各种组件。
作为一个跨平台开源库,Polymer支持开发者按照Web组件标准所定义的方式去编写组件。它把复杂的代码和结构封装在了不同的组件中,并允许开发者使用简单易用的规则进行命名。此外,Polymer还提供了一套预定义的UI Element,方便用户使用和二次开发。通过结合HTML Imports、Template标签、Shadow DOM以及Custom Element,开发人员只需要把不同的组件进行简单组合,即可轻松的创建出所需的网页。这样,开发人员就可以根据网页设计人员的需求不断的变更网页,提升用户体验和性能。而且,对于一个设计复杂的大型网站,只有基于Web组件的Polymer可以有效的对资源进行管理和调度。至于W3C标准还没有正式发布的问题, Polymer产品经理Taylor Savage表示 ,所有相关的标准目前都已经比较成熟,相信很快就会进行发布。同时,基于这些标准的Polymer会相应的不断升级,继续为用户提供很好的服务。
在这两年中,Polymer已经经历了10个版本的更新。在开发者预览版本(0.5版本)之后,Polymer团队听取广大开发人员的意见重写了开发库,在保持开发者良好使用体验的同时,大大提升了浏览器的性能。以Chrome浏览器为例,后期的版本比开发者预览版本代码量少36%,速度却是原来的3倍。 据Polymer团队透露 ,本次发布的1.0版本相比于之前的0.9版本并没有很大变化,修复了一些bug,并再次进行了性能提升。由此可见,此次发布的Polymer 1.0版本在性能、稳定性等方面已经成熟。目前,利用Polymer的 初学者套件 ,用户可以直接开始体验新版的Polymer。
感谢郭蕾对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 )。