【问题标题】:jQuery document vs dom element binding [duplicate]jQuery文档与dom元素绑定[重复]
【发布时间】:2015-12-19 16:08:39
【问题描述】:

我有一个 MVC 应用程序,它利用 ajax 从服务器获取一些数据和/或加载部分数据。这是我为了将动作绑定到页面上不一定存在的元素所做的:

$(document).on("click",".helloWorld", function(){ alert("hello world") });

不直接将动作绑定到元素是一种不好的做法吗?在这种情况下,我应该直接在部分页面上放置脚本吗?是不是慢很多?如果页面上有十几个类似的方法,它会破坏性能吗?

【问题讨论】:

  • This answer 应该可以帮助您更好地理解。
  • 如果不是完全无法察觉,速度下降也很接近。您正在执行事件委托,因此假定 .helloworld 是动态创建的元素。如果不是,你可以做一个简单的非委托事件。

标签: jquery model-view-controller


【解决方案1】:

如果元素以前不存在于页面中(例如,它们稍后加载或替换),没有比委托更好的方法了,因为它们不能绑定

就性能而言,它实际上比绑定到许多元素的性能要高得多。事件委托的一个用例是一个包含大量td 的非常大的表。即使所有元素都预先存在,表格处理td's的事件也更快

我会说你没事。在你的情况下,你的内容是动态的,所以我会说你不能做不同的事情(虽然我没有看到你的代码,所以不能肯定地说)

【讨论】:

    【解决方案2】:

    我觉得还可以。 现在的计算机速度很快,所以更多的 javascript 代码不是什么大问题。 唯一让您的网站变慢的是“更多的代码意味着更多的页面加载时间”。但这不是很多。 所以不用太担心!

    【讨论】:

      猜你喜欢
      • 2013-01-23
      • 2013-04-08
      • 1970-01-01
      • 2016-01-18
      • 2011-03-02
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      相关资源
      最近更新 更多