2015-02-08 78 views
1

給定一個元素實例,如何查看它維護的觀察者數量?聚合物:我的元素維護了多少觀察者?

我想知道這些實現是否更昂貴。

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

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

我懷疑它們是等價的(除了一個正在觀看富,另一個正在觀察路徑),但我想確定。

回答

0

您可以檢查chrome開發工具中的所有事件偵聽器。在控制檯中選擇ID,在右側選擇「事件監聽器」選項卡。

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

但我懷疑這會明智的告訴你什麼表現。我認爲最好在chrome開發工具的配置文件選項卡中使用CPU配置文件。

1

在內部,Polymer使用使用Node.bind()綁定屬性更改。 它將使用PathObserver觀看'foo.baz',當然,觀察像這樣的計算對象與單個屬性相比要慢。

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

+0

等效的javascript的計算是:'this.bind( '酒吧',新PathObserver(FOO, '巴茲'));'。你知道財產的等效JavaScript改變了嗎? – 2015-02-11 17:48:44