我开始写一系列关于JavaScript / jQuery优化的文章,并偶然发现了这个有趣的结果。
为什么通过从缓存的jQuery集合中搜索来最小化jQuery对象可能比创建更多的jQuery对象慢?
我惊讶地看到了我准备的一个测试的结果。我一直认为最小化创建$实例会更慢。
这就是我习惯写的,因为我缓存了父级(我称之为“appRoot”)。
为什么通过从缓存的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 发现缓存片段比未缓存的片段更慢。
我试图理解为什么?