写点什么

Google 发布 Polymer 1.0 版本

  • 2015-06-04
  • 本文字数:1402 字

    阅读完需:约 5 分钟

在 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 读者交流群InfoQ 好读者)。

2015-06-04 09:473358
用户头像

发布了 268 篇内容, 共 137.2 次阅读, 收获喜欢 24 次。

关注

评论

发布
暂无评论
发现更多内容

区块链usdt承兑商支付系统开发 区块链应用开发

电微13828808271

USDT承兑支付系统开发

在5G智慧园区的“保龄球道”上,目标全垒打的征途

脑极体

Python 为什么没有 void 关键字?

Python猫

Python 编程

合约跟单系统开发,合约跟单软件定制开发

13530558032

全场景智慧:新工业革命必须拥抱的晨曦

脑极体

Python 函数为什么会默认返回 None?

Python猫

Python 编程

Apache Pulsar 8 月月报:里程碑一个接一个

Apache Pulsar

大数据 云原生 Apache Pulsar 消息系统 消息中间件

dubbo应用级服务发现初体验

捉虫大师

dubbo 注册中心

LeetCode题解:239. 滑动窗口最大值,双循环暴力,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Python 中的数字到底是什么?

Python猫

Python 翻译 PEP

Centos7 mongodb安装全攻略

红泥

mongodb

有奖征文火热开赛,万元大奖等你来拿,准备好了吗?

InfoQ写作社区官方

程序员 开发者 音视频 随笔杂谈 RTC征文大赛

北京首台区块链政务终端亮相 一键“拉取”链上数据

CECBC

区块链技术

缓存与数据库一致性问题深度剖析

Zhendong

数据库 缓存 秒杀系统

学习笔记丨结构体中的内存管理

Liuchengz.

c Linux 学习

从每秒6000写请求谈起

架构师修行之路

程序员 架构师 高并发系统设计

经济适用的企业内外网互动直播方案

fumingwang

音视频 直播 视频会议 企业应用

区块链+公共安全 大有可为

CECBC

区块链 安全

ARTS Week10

丽子

凤凰交易所 全球首个多元化生态交易平台震撼来袭

InfoQ_967a83c6d0d7

iWebExcel 协同数据填报和在线分析平台

葡萄城技术团队

SpreadJS

Docker 搭建 Redis Cluster 集群环境

哈喽沃德先生

redis Docker 容器 集群 redis cluster

区块链支付系统开发,数字货币支付承兑商APP模式搭建

13530558032

LeetCode题解:84. 柱状图中最大的矩形,循环+双指针暴力,JavaScript,详细注释

Lee Chen

大前端 LeetCode

深度解读:Apache DolphinScheduler 新架构与特性,性能提升2~3倍

代立冬

大数据 开源 工作流调度 开源社区

Flink保存点-17

小知识点

scala 大数据 flink

实战中学习浏览器工作原理 — 之 HTTP 请求与解析

三钻

CSS Java 大前端 浏览器

数字货币钱包软件开发方案,区块链数字货币钱包源码

13530558032

芯片破壁者(十五):仙童半导体和“八叛逆”所缔造的“硅谷模式”

脑极体

macos主流工作开发套件指南

久违

macos Docker 大前端 自动化部署

oeasy教您玩转linux010204-figlet

o

Google发布Polymer 1.0版本_Google_张天雷_InfoQ精选文章