老实说,我认为这种谨慎是valid,但同时也已经过时了。在这里查看 jQuery 源代码:http://github.com/jquery/jquery/blob/master/src/event.js#L290 http://github.com/jquery/jquery/blob/master/src/event.js#L290
它显示了全球事件是如何发生的now处理:
if ( jQuery.event.global[ type ] ) {
jQuery.each( jQuery.cache, function() {
if ( this.events && this.events[type] ) {
jQuery.event.trigger( event, data, this.handle.elem );
}
});
}
It used to be:
jQuery("*").add([window, document]).trigger(type, data);
所以它不会触发every像以前一样的元素,这使得大量元素警告成为一个非常现实的问题,它而是循环遍历已注册的元素或事件,并且仅当any已经注册了,所以是much现在性能更好了。
对于您的问题:
那么首先我应该使用上面显示的解决方案吗?随着我的网站和 js 代码变得越来越大,这会成为性能问题吗?
是的,上面的解决方案很好,在我上面概述的全局事件优化之后,我还没有看到足够大的页面来解决这个问题。
我应该避免 jQuery 全局事件,只是像段落中所说的那样将其关闭吗?
不,你几乎可以忽略该段落之后使用的任何 jQuery这个变化 http://github.com/jquery/jquery/commit/cf78e396db1b986360c32fb0ca071a0fb90da064被制作了。
最后,在执行 ajax 请求时,你们如何显示一个简单的指示器?
正如您在问题中所说的那样:)