我试图找到一个符合我想要答案的上下文的标题。 我自己解释一下。
在编写了数千条javascript代码行(有或没有jquery)后,我终于问自己我做错了。 主要是感谢jQuery添加事件/委托给一个元素非常容易,但所有的例子都很安静“简单”;意思是它没有考虑到你有一个完整的列表,按钮,动态的东西......
所以我的问题是: 再一次为一个复杂的网站,拥有数百个动态页面,ajax导航,数百万用户...
Contexte
<body>
<div>
<ul>
<li><span click="myFunc"></span></li>
</ul>
</div>
</body>
-
Sidenot:我正在使用jQuery进行演示/简单,但这是关于js的全局问题
// Standard binding example
$('span').on('click', func)
VS
// Standard delegation example
$('ul').on('click', 'span', func)
VS
// Dispatcher for 'block'
$('ul').on('click', localDispatcher)
VS
// One (and only one) Global Listener for all click
$(body).on('click', globalDispatcher)
通过这个例子,需要手动放置3个第一个,在这个页面的专用js上。
VS
最后一个只是一个简单的事件监听器,它将使用click
属性进行调度,并且可以只设置一次。
我发现最后一个非常酷,因为它消除了管理点击/选择器/ dom管理的所有麻烦。当我更改页面(ajax导航)时,我没有.off
每个监听器。
但我想知道性能或者我可以考虑的另一个问题(这就是我问这个问题的原因:D)。
我真的很想知道“大型网络创业公司”如何管理这种Javascript。
谢谢:)
答案 0 :(得分:1)
我会拒绝全球听众,因为一旦应用程序变得相当大,它会让人感到非常困惑和令人沮丧。 此外,表现应该非常糟糕,因为你涉及的元素会被忽略 因此,如果您希望将来对自己感觉良好,请坚持使用元素或块级事件委派!