是否有可能控制聚合物表达式的发射?

时间:2014-02-14 19:20:39

标签: javascript polymer

我正在开发一个移动应用程序,并喜欢使用Polymer专门用于导入自定义元素。该应用程序依赖于在requestAnimationFrame上绘制画布的自定义元素。因此,我一直在关注Chrome的时间线控制台,看看我是否可以减少尽可能多的操作,以保持应用程序的黄油顺畅。在我的分析过程中,我可以优化很多东西。但我也注意到基于聚合物的定时功能:

enter image description here

由于缺乏一个更好的术语,我将称之为轮询(我很想知道Polymer在这里做了什么)。是否可以停止此轮询并自行触发此更新?因为我只使用了导入和自定义元素,所以我想测试一下,看看我是否只能在页面初始化期间更新聚合物,并且在绘制/ requestAnimationFrame视图期间保留更新。

2 个答案:

答案 0 :(得分:2)

这是platform.js代码检测Object.observe polyfill并轮询脏检查机制。

在原生Object.observe的平台上没有投票。

如果您想使用标准platform.js,那么您可以这样关闭投票:

clearInterval(Platform.flushPoll);

并以这种方式定期打电话:

Platform.flush();

如果你是关于

的话
  

我只使用导入和自定义元素

然后,您也可以直接使用这些polyfill而不是platform.js(放弃数据绑定和polymer.html支持)来避免轮询。

答案 1 :(得分:1)

Polymer使用轮询来刷新数据更改。有关数据更改如何在此处传播的更多信息:http://www.polymer-project.org/polymer.html#flush。默认情况下启用Object.observe时轮询会消失!对于没有它的浏览器,Polymer将继续进行轮询。