Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
将$(';正文,html';)选择存储为jQuery_Jquery_Performance_Variables_Jquery Selectors - Fatal编程技术网

将$(';正文,html';)选择存储为jQuery

将$(';正文,html';)选择存储为jQuery,jquery,performance,variables,jquery-selectors,Jquery,Performance,Variables,Jquery Selectors,我正在优化JS代码,遇到了这个问题: 在脚本的不同位置有jQuery选择器,它们选择“body,html”,主要用于更改/检查类。现在我在想,如果我将选择存储在一个变量中,它是否会提高性能,或者相反,大型元素会降低站点的性能。是的,缓存选择器是jQuery中一种已知的优化技术,这意味着您只需少查询一次。因此,它无疑会更快,因为它不必每次都查询DOM 这就是说,除非每秒查询数千次,否则仅查询html,body不会对性能产生任何明显的影响。我将把优化时间集中在其他地方,尽管通常认为最好的做法是缓存D

我正在优化JS代码,遇到了这个问题:
在脚本的不同位置有jQuery选择器,它们选择“body,html”,主要用于更改/检查类。现在我在想,如果我将选择存储在一个变量中,它是否会提高性能,或者相反,大型元素会降低站点的性能。

是的,缓存选择器是jQuery中一种已知的优化技术,这意味着您只需少查询一次。因此,它无疑会更快,因为它不必每次都查询DOM


这就是说,除非每秒查询数千次,否则仅查询
html,body
不会对性能产生任何明显的影响。我将把优化时间集中在其他地方,尽管通常认为最好的做法是缓存DOM选择以获得更简单的程序员心智模型(更少的字符串以获得输入错误)。

您是否确实分析了您的站点并确定这是一个问题?此外,我强烈建议不要使用这样的全局变量(存储类,然后轮询它们),除非使用不可变状态(就像Modernizer那样)。@BenjaminGruenbaum我必须承认,不,我没有分析它。这更像是出于好奇而提出的一般性问题。关于你的第二点:大多数时候我必须设置body的溢出值,或者滚动到某个位置,所以没有其他方法可以做到。或者?好的,谢谢你的澄清。除非选择器位于像
scroll