最佳实践JavaScript:同一事件的多个事件监听器,还是一个监听器来管理所有事件?
在我的应用程序中,有许多模块彼此独立运行,其中大多数都会侦听最佳实践JavaScript:同一事件的多个事件监听器,还是一个监听器来管理所有事件?,javascript,jquery,javascript-events,document-ready,Javascript,Jquery,Javascript Events,Document Ready,在我的应用程序中,有许多模块彼此独立运行,其中大多数都会侦听$(document).ready()事件启动。例如,这些模块处理输入字段上的日期选择器、模式弹出窗口和按钮点击上的加载程序等 现在,在我的每个模块中,我都会收听$(document).ready()事件并启动模块,但我制作的模块越多,注册的事件侦听器就越多。我担心这会影响页面在加载时的响应性/流畅性,使其结巴/闪烁,总体感觉很慢 我想知道,如果我将所有的document ready函数添加到一个对象中,并听一次$(document).
$(document).ready()
事件启动。例如,这些模块处理输入字段上的日期选择器、模式弹出窗口和按钮点击上的加载程序等
现在,在我的每个模块中,我都会收听$(document).ready()
事件并启动模块,但我制作的模块越多,注册的事件侦听器就越多。我担心这会影响页面在加载时的响应性/流畅性,使其结巴/闪烁,总体感觉很慢
我想知道,如果我将所有的document ready
函数添加到一个对象中,并听一次$(document).ready()
循环对象并调用每个函数,会怎么样。顺序无关紧要
这会加快页面的“加载”速度吗?这会带来其他问题吗
您的想法是什么?您进行优化是因为您看到了性能问题,或者您进行优化是因为您认为有一天会出现性能问题?“这会加快页面的“加载”速度吗?”“不会太大。”。您仍将运行所有相同的代码,只是使其不易维护。事件触发/处理代码与for循环一样简单,因此触发多个document.ready与单个document.ready相比,开销非常小。@MarkAdelsberger第二个选项,现在可以了,但最好在为时已晚之前进行优化,另外,如果有比我现在做的更好的方法,我希望know@Milanzorg如果我没有弄错的话,jQuery已经将处理程序存储在数组中,并循环它,而不是附加()。当然,
.ready()
是不同的,但它的工作原理也是一样的。它将函数存储在一个类似延迟数组的对象中,并在DOM就绪时解析它@freedomn-m——不要为别人的利益而害羞。这个问题是出于优化的愿望;我的第一个评论专门针对澄清情况是否如此。这不是对标准实践的搜索,而是关于是否打破它的问题。您进行优化是因为您看到了性能问题,或者您进行优化是因为您认为有一天会出现性能问题?“这会加快页面的‘加载’吗?”“不会很大程度上加快。您仍将运行所有相同的代码,只是使其不易维护。事件触发/处理代码与for循环一样简单,因此触发多个document.ready与单个document.ready相比,开销非常小。@MarkAdelsberger第二个选项,现在可以了,但最好在为时已晚之前进行优化,另外,如果有比我现在做的更好的方法,我希望know@Milanzorg如果我没有弄错的话,jQuery已经将处理程序存储在数组中,并循环它,而不是附加()。当然,.ready()
是不同的,但它的工作原理也是一样的。它将函数存储在一个类似延迟数组的对象中,并在DOM就绪时解析它@freedomn-m——不要为别人的利益而害羞。这个问题是出于优化的愿望;我的第一个评论专门针对澄清情况是否如此。这不是一个标准实践的探索,而是一个是否要打破它的问题。