我开始了一系列关于 javascript / jQuery 优化的帖子,并偶然发现了这个有趣的结果。
为什么最小化 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事实证明,缓存的片段比未缓存的片段慢。
我试图理解为什么?