gpt4 book ai didi

jquery - 监听器 : OK to run on every page, 或仅在需要它们的页面上初始化?

转载 作者:行者123 更新时间:2023-12-01 05:04:58 25 4
gpt4 key购买 nike

在我的网站上,我有带有“事件监听器”的元素(.live、.bind 或 .delegate),我可以根据它们出现的频率将它们分为几组:

  1. 每个页面上的元素。
  2. 某些页面上的元素。

如果我有一个元素位于每个页面上,并且该元素需要一个监听器,那么我当然只需在站点范围内实现该监听器。

我正在尝试找出对于 (a) 仅出现在几页上且 (b) 需要监听器的元素来说最明智的做法:

  • 在站点范围内实现监听器
  • 实现监听器,以便必须首先在任何想要使用它的页面上对其进行初始化

例如,假设我有 <input class='autocomplete' />出现在多个页面上,但不在整个站点范围内。当有人输入文本时,它会访问数据库并尝试完成对他们的查询。

由于该元素并非出现在每个页面上,因此开销为 jQuery.live('someEventsHere',MyHandler())足够高以至于我只能在使用它的页面上调用它? (例如,通过创建 initializeMyHandler() 函数并在这些页面上调用它?)或者,在不会使用该监听器的页面上,这是否足够便宜,可以设置而不用担心?

最佳答案

live() 的工作原理是将事件处理程序附加到文档,而不是元素。因此,live() 利用了事件冒泡,因此附加事件处理程序不会产生那么多的开销,尽管确实会有一些开销。包含 JavaScript 文件的 HTTP 请求超出了将未使用的事件处理程序附加到文档所产生的开销。

关于jquery - 监听器 : OK to run on every page, 或仅在需要它们的页面上初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6712948/

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