jquery事件的高延迟

时间:2014-11-20 07:37:48

标签: jquery performance events latency

我的网络应用程序非常慢,我开始调查以查找原因。我想我找到了问题,但不是解决方案。 我用控制台分析了你可以在屏幕上看到结果。每次点击都会出现问题,由于点击事件导致的延迟时间接近1000毫秒。首先,我认为这是因为在我的代码中有太多的事件点击了正文,但正如你所看到的那样,如果总成本只有0.3到1%之间,那么与n的97.71%相比非常微小.event.handler。 所以我的问题是延迟来自哪里?

在我的代码中,有很多:

 $('html').on('click', '.class', function(){ });

也许太多了?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

如果你认为你有太多这些:

$('html').on('click', '.class', function(){ });

您可以尝试将它们重构为一个处理程序:

$('html').on('click', function (e) {

  if (e.target.classList.contains('class')) {
       // e.target is the clicked element
      // do something here
  }

  if ($(e.target).is('class2')) {
     // you can wrap e.target into a jQuery object
     // the same way you wrap this.
     // do something else here
  }

});

此外,根据this question的答案,如果您有大量动态创建的目标,则应删除并添加这些事件处理程序。