gpt4 book ai didi

javascript - 高端 JavaScript 应用程序和事件

转载 作者:行者123 更新时间:2023-12-03 10:20:43 27 4
gpt4 key购买 nike

我试图找到一个与我想要的答案的上下文相匹配的标题。我解释一下。

在编写了数千行 JavaScript 代码(无论有或没有 jquery)之后,我终于问自己是否我做错了。主要归功于 jQuery,向元素添加事件/委托(delegate)非常容易,但所有示例都很“简单”;这意味着它没有考虑到您有一个充满列表、按钮、动态内容的页面......

所以我的问题是:再次是一个复杂的网站,有数百个动态页面、ajax 导航、数百万用户......

<小时/>
  1. 放置全局监听器(主体或其他)并让所有事件冒泡是否有任何优势(除了简单性之外)?当我查看 Angular 时,它们似乎在全局范围内监听“ng-click”,但我可能会想错。

上下文

<body>
<div>
<ul>
<li><span click="myFunc"></span></li>
</ul>
</div>
</body>

-

旁注:我使用 jQuery 进行演示/简单化,但这是关于 js 的全局问题

// Standard binding example
$('span').on('click', func)

对比

// Standard delegation example
$('ul').on('click', 'span', func)

对比

// Dispatcher for 'block'
$('ul').on('click', localDispatcher)

对比

// One (and only one) Global Listener for all click
$(body).on('click', globalDispatcher)

在此示例中,第 3 个需要手动放置在该页面的专用 js 上。VS最后一个只是一个简单的事件监听器,它将使用 click 属性来调度,并且可以一次性设置。

我发现最后一个非常酷,因为它消除了管理点击/选择器/dom 管理的所有麻烦。另外,当我更改页面(ajax 导航)时,我不必 .off 每个监听器。但我想知道性能或者我能想到的其他问题(这就是我问这个问题的原因:D)。我真的很想知道“大型网络初创公司”如何管理这种 Javascript。

谢谢:)

最佳答案

我会对全局听众说不,因为一旦应用程序变得相当大,组织起来就会变得非常困惑和令人沮丧。
此外,性能应该非常糟糕,因为您涉及否则将被忽略的元素。
因此,如果您想在未来 self 感觉良好,请坚持使用元素或 block 级事件委托(delegate)!

关于javascript - 高端 JavaScript 应用程序和事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29650297/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com