【发布时间】:2011-07-12 20:22:03
【问题描述】:
我开始了一系列posts on javascript / jQuery optimization 并偶然发现了这个有趣的结果。
为什么最小化 jQuery 对象(通过从缓存的 jQuery 集合中搜索)会比创建更多 jQuery 对象实例更慢?
看到我准备的测试结果,我惊呆了。 我一直认为最小化创建 $ 实例会更慢。
这是我习惯写的,因为我缓存了父级(我称之为“appRoot”)。
var appRoot = $("#appRoot");
appRoot.find(".element1").css("color","red");
appRoot.find(".element2").css("color","blue");
对
$(".element1").css("color","red");
$(".element2").css("color","blue");
查看测试结果(场景略有不同)。 jsperf minimize-jquery-object-creation 原来缓存的 sn-p 比未缓存的 sn-p 慢。
我想知道为什么?
【问题讨论】:
-
这就是代码分析如此重要的原因。
-
也许 jquery .find() 比 DOM 搜索慢?
标签: jquery performance jsperf