Javascript 主干-DOM元素更有效的作用域查找方法是什么?
我知道有很多方法可以在视图中执行DOM查询:Javascript 主干-DOM元素更有效的作用域查找方法是什么?,javascript,jquery,backbone.js,backbone-views,Javascript,Jquery,Backbone.js,Backbone Views,我知道有很多方法可以在视图中执行DOM查询: $(view.el).find("#element"); $(“#element”, view.el); view.$("#element"); 哪种方法是最好的,为什么?始终使用查找上下文选择器 “的确,在可能的情况下,您应该始终尝试基于上下文运行您的选择,但是记住,当您将上下文传递给jQuery构造函数时,它会创建一个额外的函数调用,这一点很有用。 jQuery的内部运行content.find(selector),因此,如果您使用的页面结
$(view.el).find("#element");
$(“#element”, view.el);
view.$("#element");
哪种方法是最好的,为什么?始终使用查找上下文选择器 “的确,在可能的情况下,您应该始终尝试基于上下文运行您的选择,但是记住,当您将上下文传递给jQuery构造函数时,它会创建一个额外的函数调用,这一点很有用。 jQuery的内部运行content.find(selector),因此,如果您使用的页面结构可能不会从使用上下文中受益匪浅,那么您可以从技术上跳过该步骤。下面是我所说的示例。” 资料来源:(提示6) 是的,这篇文章很旧,但仍然是真的
TL;DR版本:上下文选择器调用
.find()
函数。使用.find()
直接减少调用次数。始终使用查找上下文选择器
“的确,在可能的情况下,您应该始终尝试基于上下文运行您的选择,但是记住,当您将上下文传递给jQuery构造函数时,它会创建一个额外的函数调用,这一点很有用。
jQuery的内部运行content.find(selector),因此,如果您使用的页面结构可能不会从使用上下文中受益匪浅,那么您可以从技术上跳过该步骤。下面是我所说的示例。”
资料来源:(提示6)
是的,这篇文章很旧,但仍然是真的
TL;DR版本:上下文选择器调用
.find()
函数。使用.find()
直接减少调用次数。Bakcbone保留对视图el的引用,因此最后一个将是视图的速记版本。$el.find(“#元素”)
我认为这意味着最后一个是最快的,因为它只查看el而不是整个DOM,并且仍然使用find
看看这个链接 Bakcbone保留对视图el的引用,因此最后一个将是视图的简写版本。$el.find(“#element”) 我认为这意味着最后一个是最快的,因为它只查看el而不是整个DOM,并且仍然使用find
看看这个链接
视图。$(…)
与视图。$el.find(…)
(当然还有一个额外的函数调用包装):$:函数(选择器){返回这个。$el.find(选择器);}
。而$x.find()
和$(x,el)
之间的差异几乎肯定会在其他地方被提及。因此,合并Ray和Karl的答案最好的方法是查看。$(“#元素”)代码>?可能是最惯用的主干,但最好是高度主观的。对于优化,view.$(“#元素”)
和$(view.el).find(“#元素”)
是等效的(相同的东西,但一个写起来更短)。所以你决定你喜欢什么。你要寻找的答案是:不要使用第二种方法。好的,非常感谢,我想我会给@Rayweb_on一个公认的答案,因为他先写了这些行,但是为了记录在案,Karl的答案也是很好的视图。$(…)
与视图相同。$el.find(…)
(当然还有一个额外的函数调用包装器):$:函数(选择器){返回这个。$el.find(选择器);}
。$x.find()
和$(x,el)
之间的区别几乎肯定会在其他地方讨论。因此,合并Ray和Karl的答案最好的方法是查看。$(“#元素”)
?可能是最常用的主干,但最好是高度主观的。为了优化,视图。$(“#元素”);
和$(view.el)。find(“#元素”);
是等效的(相同的东西,但一个写起来更短)。所以你决定你喜欢什么。你要找的答案是:不要使用第二种方法。好的,非常感谢,我想我会给@Rayweb_on一个公认的答案,因为他先写了那几行,但是为了记录在案,Karl的答案也很好
view.$("#element"); /// is like I said is just the same that :
view.$el.find('#element');