发射Polymer事件比直接调用侦听器函数要慢吗?

时间:2016-03-18 20:44:35

标签: javascript polymer

处理事件是否有大量开销,特别是如果事件只有一个侦听器?

例如,以这种方式调用它会变慢:

Polymer({
  'listeners': {
    'some-event': 'someFunc',
  },

  attached: function() {
    this.fire('some-event');
  },

  someFunc: function(event) {
   //do stuff..
  }
});

对战:

Polymer({
  attached: function() {
    this.someFunc();
  },

  someFunc: function() {
   //do stuff..
  }
});

1 个答案:

答案 0 :(得分:0)

同步触发事件(默认)时没有明显的区别,特别是如果处理程序调用{​​{1}}以便事件不会在DOM上下起泡。如果事件是异步触发的,则仅在完全处理当前事件之后(当处理事件队列中的下一个任务时)调用处理程序。 如果没有特殊原因我会直接调用处理程序。

关于对服务器的请求,差异根本不重要。如果您的目标是高帧率并且有数百或数千个这样的呼叫,您可能会发现差异。