我的网络应用程序非常慢,我开始调查以查找原因。我想我找到了问题,但不是解决方案。 我用控制台分析了你可以在屏幕上看到结果。每次点击都会出现问题,由于点击事件导致的延迟时间接近1000毫秒。首先,我认为这是因为在我的代码中有太多的事件点击了正文,但正如你所看到的那样,如果总成本只有0.3到1%之间,那么与n的97.71%相比非常微小.event.handler。 所以我的问题是延迟来自哪里?
在我的代码中,有很多:
$('html').on('click', '.class', function(){ });
也许太多了?
答案 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的答案,如果您有大量动态创建的目标,则应删除并添加这些事件处理程序。