Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取DOM元素的性能差异_Javascript_Jquery_Html_Dom - Fatal编程技术网

Javascript 获取DOM元素的性能差异

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

这可能与小而简单的DOM元素无关,但假设我有一些大而复杂的DOM元素,那么将元素存储在变量中以使用它与使用jQuery选择器不断获取它之间是否存在很大的性能差异

$('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()
调用中不必要的开销。不过,谢谢你:)