我正在开发一个移动应用程序,并喜欢使用Polymer专门用于导入自定义元素。该应用程序依赖于在requestAnimationFrame上绘制画布的自定义元素。因此,我一直在关注Chrome的时间线控制台,看看我是否可以减少尽可能多的操作,以保持应用程序的黄油顺畅。在我的分析过程中,我可以优化很多东西。但我也注意到基于聚合物的定时功能:
由于缺乏一个更好的术语,我将称之为轮询(我很想知道Polymer在这里做了什么)。是否可以停止此轮询并自行触发此更新?因为我只使用了导入和自定义元素,所以我想测试一下,看看我是否只能在页面初始化期间更新聚合物,并且在绘制/ requestAnimationFrame视图期间保留更新。
答案 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将继续进行轮询。