Javascript 获取DOM元素的性能差异
这可能与小而简单的DOM元素无关,但假设我有一些大而复杂的DOM元素,那么将元素存储在变量中以使用它与使用jQuery选择器不断获取它之间是否存在很大的性能差异Javascript 获取DOM元素的性能差异,javascript,jquery,html,dom,Javascript,Jquery,Html,Dom,这可能与小而简单的DOM元素无关,但假设我有一些大而复杂的DOM元素,那么将元素存储在变量中以使用它与使用jQuery选择器不断获取它之间是否存在很大的性能差异 $('myDomElement').css('height', 500); $('myDomElement').css('width', 500); // do more stuff using $('myDomElement') vs 第二种方法是正确的,因为您适合您的元素: var myDomElement = $('myDomE
$('myDomElement').css('height', 500);
$('myDomElement').css('width', 500);
// do more stuff using $('myDomElement')
vs
第二种方法是正确的,因为您适合您的元素:
var myDomElement = $('myDomElement');
myDomElement.css('height', 500);
// do more stuff to myDomElement var
在这种情况下,jQuery不会再次解析您的DOM来查找它以前已经找到的内容
在第一种情况下,每次调用
$('MyDomeElement')
jQuery时,在DOM中查找元素,完全没有必要一直进行这种搜索来获取相同的元素。第二种方法是正确的,因为您是针对您的元素的:
var myDomElement = $('myDomElement');
myDomElement.css('height', 500);
// do more stuff to myDomElement var
在这种情况下,jQuery不会再次解析您的DOM来查找它以前已经找到的内容
在第一种情况下,每次调用$('mydomeElement')
jQuery时,都要在DOM中查找元素,完全没有必要一直进行这种搜索来获取相同的元素。这取决于具体情况
如果您所做的只是对一个元素执行一系列操作,但之后不要使用该元素,那么最好执行一次查找并使用jQuery链接。大多数jQuery函数都返回元素,因此可以将多个函数链接在一起,如下所示:
$('#myDomElement').css('height', 500)
.css('width', 500);
但是,如果您发现自己需要在同一元素上执行多次查找,则一定要将其保存到变量中。如果脚本中不再需要than元素,请不要忘记将其设置为null
,或者删除它。这将允许垃圾收集收集它,并减少脚本的内存占用
var el = $('#myDomElement');
el.css('height', 500);
//... further down in your script
el.css('height', 400);
el = null; //Will be picked up by GC
希望有帮助,祝你好运:)这要看情况而定
如果您所做的只是对一个元素执行一系列操作,但之后不要使用该元素,那么最好执行一次查找并使用jQuery链接。大多数jQuery函数都返回元素,因此可以将多个函数链接在一起,如下所示:
$('#myDomElement').css('height', 500)
.css('width', 500);
但是,如果您发现自己需要在同一元素上执行多次查找,则一定要将其保存到变量中。如果脚本中不再需要than元素,请不要忘记将其设置为null
,或者删除它。这将允许垃圾收集收集它,并减少脚本的内存占用
var el = $('#myDomElement');
el.css('height', 500);
//... further down in your script
el.css('height', 400);
el = null; //Will be picked up by GC
希望这会有所帮助,祝你好运:)而不是链接多个
。css
调用你只需传递一个要设置的属性对象即可。啊,我不知道。现在你让我想到了我在多个链式.css()
调用中不必要的开销。不过,谢谢:)您只需传递一个要设置的属性对象,而不是链接多个.css
调用。啊,我不知道。现在你让我想到了我在多个链式.css()
调用中不必要的开销。不过,谢谢你:)