【问题标题】:Polymer: How many observers is my element maintaining?Polymer:我的元素维护了多少观察者?
【发布时间】:2015-04-08 15:30:09
【问题描述】:

给定一个元素实例,我如何查看它维护了多少观察者?

我正在尝试确定这些实现中的任何一个是否更昂贵。

Polymer({
  fooChanged: function() {
    this.bar = foo.baz;
  }
}

Polymer({
  computed: {
    'bar': 'foo.baz'
  }
}

我怀疑它们是等价的(除了一个在看 foo,另一个在看路径)但我想确定一下。

【问题讨论】:

    标签: polymer observers


    【解决方案1】:

    在内部,Polymer 使用 Node.bind() 来绑定属性更改。 它将使用 PathObserver 来观看 'foo.baz',当然,观看这样的计算对象比观看单个属性要慢。

    https://www.polymer-project.org/docs/polymer/node_bind.html

    【讨论】:

    • 计算的等效 javascript 是:this.bind('bar', new PathObserver(foo, 'baz'));。您知道该属性的等效 javascript 已更改吗?
    【解决方案2】:

    您可以在 chrome 开发工具中检查所有事件侦听器。在控制台中选择 ID,右侧有“事件侦听器”选项卡。

    见: Using Chrome, how to find who's binded to an event?

    但我怀疑这会向您展示任何性能方面的信息。我认为最好在 chrome 开发工具的配置文件选项卡中使用 CPU 配置文件。

    【讨论】:

      猜你喜欢
      • 2016-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多