为了优化jQuery',向数百个元素添加id值得吗;她的表现如何?
我需要在一个站点上使用jQuery进行大量HTML操作,在这个站点上有数百个产品以相同的结构显示。几乎所有代码块都单独包装在一个具有相同类名的div容器中 现在我想知道是否应该在类名中插入一个唯一的ID,这样我就可以使用$('#ID')而不是$('.class')来进行HTML操作。从#3中获得想法 我可能会使用for循环在类之后插入一个id来创建id。这值得花时间吗?更重要的是,这是否有助于提高绩效 编辑: 对于我将要进行的操作类型,肯定会经常使用For循环。 此外,我不太确定分页是否对性能有任何意义。现在产品每页显示10个,用户可以选择每页查看更多内容 是的,ID选择器效率更高。使用它们来缩小您的范围,然后您可以稍后按类进行选择。此外,保存可能重复使用的选择为了优化jQuery',向数百个元素添加id值得吗;她的表现如何?,jquery,performance,jquery-selectors,dom-manipulation,Jquery,Performance,Jquery Selectors,Dom Manipulation,我需要在一个站点上使用jQuery进行大量HTML操作,在这个站点上有数百个产品以相同的结构显示。几乎所有代码块都单独包装在一个具有相同类名的div容器中 现在我想知道是否应该在类名中插入一个唯一的ID,这样我就可以使用$('#ID')而不是$('.class')来进行HTML操作。从#3中获得想法 我可能会使用for循环在类之后插入一个id来创建id。这值得花时间吗?更重要的是,这是否有助于提高绩效 编辑: 对于我将要进行的操作类型,肯定会经常使用For循环。 此外,我不太确定分页是否对性能有
var container = $("#someId");
var products = container.find(".product");
//later on...
products.find(".class").doSomething();
另外,请记住,.children()
比.find()
更有效,所以尽可能使用它。是的,ID选择器效率更高。使用它们来缩小您的范围,然后您可以稍后按类进行选择。此外,保存可能重复使用的选择
var container = $("#someId");
var products = container.find(".product");
//later on...
products.find(".class").doSomething();
另外,请记住
.children()
比.find()
效率更高,所以尽可能使用它。这样做可能是一种好的做法,但只有当页面很大(有许多元素)或多次选择元素(即在循环中)时,您才会注意到差异
在周期外选择所需的元素,并在其内部使用引用,这样会更好、更容易
var obj = $('#someid');
while (expression){obj.something();}
这样做可能是一种很好的做法,但只有当页面很大(有许多元素)或多次选择元素(即在循环中)时,您才会注意到差异 在周期外选择所需的元素,并在其内部使用引用,这样会更好、更容易
var obj = $('#someid');
while (expression){obj.something();}
如果您现在用一个类来检索元素以执行某些操作,并打算按类执行相同的检索以添加ID,然后按ID检索元素,则不是这样!您可以通过指定父标记类型等使其更好,例如div#Parent span.spanChild h1无需指定带有
ID
选择的标记名,因为和ID已经是您可能获得的最具体的标记名。@nathanhayfield,我对页面中的每个产品都有一个跨域的请求,它在视觉上变慢了。如果你索引数据库,它可能会加快速度。如果你现在用一个类检索元素来做一些事情,并打算按类进行相同的检索来添加ID,然后按ID检索元素,不,不是!您可以通过指定父标记类型等使其更好,例如div#Parent span.spanChild h1无需指定带有ID
选择的标记名,因为和ID已经是您可能获得的最具体的标记名。@nathanhayfield,我对页面中的每种产品都有一个跨域请求,它的视觉速度越来越慢。如果你为数据库编制索引,它可能会加快速度