9 月 13 日,2025 Inclusion・外滩大会「开源嘉年华」正在限量报名中! 了解详情
写点什么

Polymer 0.8 带来了性能的提升,也包含破坏性的变更

  • 2015-04-12
  • 本文字数:1314 字

    阅读完需:约 4 分钟

Polymer 团队推出了 Polymer 0.8 的 alpha 版本,其中包含了“建议包括在 1.0 版本中的 API”,但同时它“与 0.5 版本中的 API 不相兼容”,存在着许多破坏性的变更。这个类库的新版本在文件尺寸和性能方面都得到了优化,而它的特性还没有全部完成。

Polymer 0.8 中包含了一个 _Shady DOM_ 特性,这是它自己实现的一套 Shadow DOM 的 polyfill,最初是由webcomponents.js所提供的。因此用户可以选择导入这个更小的webcomponents-lite.js文件,Shady DOM“对速度进行了优化“,并且希望避免“shadow DOM 这个 polyfill 所带来的复杂性、庞大尺寸、性能缺失以及侵入性。”

新版本中不再使用polymer-element标记,而是用dom-module标记取而代之,正如以下代码片段所表现的一样,它的作用是定义并注册某个元素:

复制代码
<dom-module id="hello-world">
  <style>
    div { color: red }
  </style>
  <template>
    <div>Hello World!</div>
  </template>
</dom-module>
<script>
  Polymer({is: "hello-world"});
</script>

原本在模板中的样式也被转移到模板之外了,正如以上示例所显示的一样。

Polymer 0.8 使用了一个单一属性集合的对象,以定义属性的观察者和计算属性。无论是否出现在属性对象中的所有属性都可以与数据进行绑定。由于使用了生成的属性访问器,因此数据绑定系统变得更易于使用,而调试也变得更简单和快速。在属性对象中的值域中定义了默认值,可以选择直接提供某个数值,也可以选择调用某个函数以返回数值。

复制代码
Polymer({
is: "my-component",
properties: {
observed: {
type: Number,
value: 100,
observer: 'observedChanged'
},
product: {
computed: 'multiply(x,y)'
}
}
});

要了解所有破坏性变更的完整列表,推荐阅读一下迁移指南中的内容。要重点指出的是,0.5 版本中的元素尚未完成移植,但在最终版本中会确定将所有元素移植。而关于对 0.5 版本未来的支持,该团队是这样说的

我们已经意识到目前有许多项目依赖于 0.5 版本中的功能,而且在所有的元素都完成移植之前,这些项目无法转而使用 0.8 版本。我们将持续关注新的 pull request 并进行合并,直至所有元素都完成移植为止。但是,我们目标是将 0.8 版本作为新的基准,全力打造这个高性能、适用于生产线上的新版本。如果 0.5 版本还有任何增量发布,只要有必要,我们都会通过一个新的分支发布该功能。

根据团队的基准测试结果来看,Polymer 0.8 的启动时间快了4 至8 倍,在Chrome 上也是如此。它的资源占用也有明显减少。如果想要深入了解0.8 版中的新特性,推荐你阅读一下开发者指南

有大量的的新特性是针对Polymer 1.0 版本而开发的,这些特性中有许多还无法运行,或只能部分运行,包括:内容体安全策略、支持手势、更好的Shady DOM 表现、跨scope 的样式、更多的模板特性、数据绑定调试工具、基准测试等等。在0.8 版本中已经支持了HTML 元素的继承,但对于扩展自定义元素的支持则推迟到了1.1 版本,原因在于“由于我们在0.8 版本中进行了一些性能方面的改进,变相造成了这一功能在新版本中的实现比起在0.5 版本中要面临更大的困难。”

查看英文原文: Polymer 0.8 Comes with Performance Improvements and Breaking Changes

2015-04-12 06:052273
用户头像

发布了 428 篇内容, 共 194.5 次阅读, 收获喜欢 39 次。

关注

评论

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

SpringCloud 微信小程序 获取用户信息一键登录

Java你猿哥

Java 小程序 spring ssm spring chloud

阿里资深架构师整理出来的一份Java核心知识点分享给大家.pdf

Java你猿哥

Java 面试 面经 八股文 java八股文呢

多层嵌套 if-else 代码优化重构的几种方案

Java你猿哥

Java ssm Java工程师 if-else

硬核!阿里出品2023版Java架构师面试指南,涵盖Java所有核心技能

三十而立

Java IT java面试 面试资料

KaiwuDB 亮相中国石油石化企业信息技术交流大会

KaiwuDB

数字能源 KaiwuDB 数据解决方案

龙蜥白皮书精选:CentOS 迁移场景的平滑迁移方案

OpenAnolis小助手

Linux 开源 操作系统 CentOS迁移 龙蜥白皮书

人工智能实践: 基于T-S 模型的模糊推理

TiAmo

模糊推理 TS模型

迄今为止把Mybatis讲解的最详细的PDF,图文并茂,通俗易懂

Java你猿哥

Java 面试 mybatis ssm Mybatis框架

浅谈 Spring Bean 的生命周期

Java你猿哥

Java spring ssm Spring Bean

拓展测试领域,不要不断重复相同的测试

测吧(北京)科技有限公司

测试

关注测试原因(针对风险测试)的基于问题的测试手段

测吧(北京)科技有限公司

测试

真香!阿里最新出品Java面试核心讲(终极版),Github已星标50K

三十而立

Java IT java面试 面试资料

想成为 Spring 大牛?先了解这 6 种添加 Bean 的方式

Java你猿哥

spring ssm Spring Bean

如何针对重复问题创建测试矩阵

测吧(北京)科技有限公司

测试

GitHub置顶半个月!78w字百亿级并发设计(全彩PDF)

Java 架构 系统设计 高并发

关于测试内容的基于覆盖率的测试手段

测吧(北京)科技有限公司

测试

关于测试是否通过的基于评估的测试手段

测吧(北京)科技有限公司

测试

和ChatGPT pair整理的测试类型清单

BY林子

软件测试 测试类型 ChatGPT

架构师日记-为什么数据一致性那么难

京东科技开发者

数据库 MQ 分布式系统 数据一致性 企业号 4 月 PK 榜

基于Label studio实现UIE信息抽取智能标注方案,提升标注效率!

汀丶人工智能

人工智能 自然语言处理 信息抽取 labelstudio 智能标注

大厂在混沌工程领域的实践

老张

混沌工程 稳定性保障

GitHub爆火疯传“Java面试手册2023”还原面试现场,通过率90%

三十而立

Java 程序员 IT java面试 大厂面试

OPPO大数据诊断平台“罗盘”正式开源

安第斯智能云

大数据 开源

面试必问:说一下 Java 虚拟机的内存布局?

Java JVM 虚拟机

JAVA多线程并发编程-避坑指南

京东科技开发者

并发编程 线程 多线程并发 编码规范 企业号 4 月 PK 榜

用工新趋势:“网讯电通+无影”让客服业务打破时空限制

云布道师

无影

软件测试报告设计错误

测吧(北京)科技有限公司

测试

吃透阿里2023版Java性能优化小册后,我让公司系统性能提升了200%

三十而立

Java 程序员 IT 面试资料

浅谈 Spring Bean 的生命周期

Java spring 生命周期 bean

“阿里爸爸”最新产出:Java面试突击核心讲(1658页),转载40W+

Java你猿哥

Java 面试 面经 八股文 Java八股文

阿里为双十一整理的JVM性能优化文档,竟被GitHub“抢开”

Java 性能优化 JVM 性能调优

Polymer 0.8带来了性能的提升,也包含破坏性的变更_开源_Abel Avram_InfoQ精选文章