javascript - : set all dom events at once, 和渐进性能哪个更好?

标签 javascript performance events dom-events

一劳永逸地添加事件监听器是否更好?或者就在事件可能发生之前?

示例:假设您的 HTML 中有一个菜单,单击即可打开。此菜单中还有一个关闭按钮,单击该按钮即可关闭菜单。应设置关闭按钮上的事件监听器:在页面加载时还是仅在菜单打开时设置?

换句话说,是这样的:

function open() {
  closeButton.addEventListener('click', close);
  // ...
}
function close() {
  closeButton.removeEventListener('click', close);
  // ...
}
openButton.addEventListener('click', open);

比这更好/更快吗?

function open() {
  // ...
}
function close() {
  // ...
}
openButton.addEventListener('click', open);
closeButton.addEventListener('click', close);

我总是更喜欢选择简单性而不是性能,但这有什么区别吗?特别是当 UI 中有很多事件时?

最佳答案

当我们知道某个事件在某个相关事件之前不太可能发生时,我们应该推迟事件绑定(bind)。这样 DOM 就不会那么重了

至于简单性部分,即使延迟事件绑定(bind),我们也可以拥有简化的代码版本

关于javascript - : set all dom events at once, 和渐进性能哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37364476/

相关文章:

python - 在 Python 中评估极坐标网格上的插值函数的最快方法是什么?

java - 这是混淆代码的有效方法吗?性能友好吗?

javascript - 如何在 onkeydown 事件后处理文本框中的新内容?

Delphi:WebBrowser 的 OnDownloadComplete 一次发生多次

javascript - 单击按钮时如何选择div文本?

javascript - 自动递增 JS 对象数组

javascript - HTML/JQuery : Textarea enlargement; Need to scroll

javascript - Ghost CMS 和 SEO

java - 来自 InputStream 的编年史字节

jquery - Flot:如何将 "mousedown"事件添加到情节持有者?