AICon 上海站|日程100%上线,解锁Al未来! 了解详情
写点什么

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:052097
用户头像

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

关注

评论

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

基于SpringBoot实现文件的上传下载

Java鱼仔

springboot

视频号直播和 PageRank 算法 [待完善]

小匚

机器学习

为您收录的操作系统系列 - 线程小常识

鲁米

线程

备战金三银四,阿里,腾讯春招面试题解析,含Java岗988道题分享

Java 架构 面试

泰康和百度智能云为何相互需要?

吴俊宇

百度 保险数字化 泰康

爬虫知识记录之一

头号摄影师

爬虫

我凭借这份“2021全网最全Java面试清单”彻底征服阿里面试官

比伯

Java 编程 程序员 架构 面试

28天瞎写的第二百四十四天:冥想的种类

树上

冥想 28天写作 正念

小步发布、验收测试和完整团队

Teobler

项目管理 敏捷 敏捷开发 工程实践 敏捷开发管理

“定义”

Nydia

关于个人认知的一些碎碎念「Day 6」

道伟

心理学 认知 28天写作

(28DW-S8-Day6)区块链如何解决双重支付及防篡改

mtfelix

比特币 区块链 防篡改 28天写作 双重支付

只有两颗糖,什么时候给——再谈峰终定律

Justin

心理学 28天写作 游戏设计

Kafka.08 - 消息交付可靠性保障

insight

kafak 2月春节不断更

Elasticsearch 一个 field 两个索引

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 2月春节不断更

又长又细,万字长文带你解读Redisson分布式锁的源码

数据库 redis 架构

微信小程序开发笔记(一)

陈飞

小程序

前端HTML5面试官和应试者一问一答

我是哪吒

html 程序员 大前端 28天写作 2月春节不断更

手把手教你爬取优酷电影信息-2

happlyfox

学习 28天写作 2月春节不断更

首全网发!2021最新版美团面经刷题笔记,已霸榜GitHub

比伯

Java 编程 架构 面试 程序人生

敏捷技术实践之TDD

Teobler

敏捷 敏捷开发 TDD 极限编程 测试驱动开发

水墨屏开发设备,旧 Kindle 改造而成

HelloGitHub

开源 硬件 kindle

敏捷团队实践

Teobler

项目管理 敏捷 敏捷开发 工程实践 敏捷开发管理

【Python】关于 Type Hints 你应该知道这些

zhujun

Python

Selenium 自动化前的补充知识,Frame操作、多窗口切换、模糊定位、复合定位

梦想橡皮擦

Python 28天写作 2月春节不断更

山东区块链赋能农产品溯源平台解决方案

源中瑞-龙先生

使用 Tye 辅助开发 k8s 应用竟如此简单(六)

newbe36524

Docker Kubernetes 微服务 dotnet

1.2 Go语言从入门到精通:编写第一个Go程序

xcbeyond

28天写作 Go 语言

让听见炮火的人来做决策,做决策的要好好听听炮火

数列科技杨德华

28天写作

手把手教你爬取优酷电影信息-1

happlyfox

学习 爬虫 28天写作 2月春节不断更

敏捷业务实践之计划游戏

Teobler

项目管理 敏捷 敏捷开发 敏捷开发管理

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