我開始了一系列posts on javascript/jQuery optimization,並偶然發現了這個有趣的結果。最小化jQuery實例vs創建更多實例
爲什麼最小化jQuery對象(通過從緩存的jQuery集合中搜索)會比創建更多的jQuery對象實例更慢?
我驚呆了,看到我準備的測試結果。 我一直認爲最小化創建$實例會更慢。
這就是我用來寫,因爲我緩存父(我稱之爲「appRoot」)。
var appRoot = $("#appRoot");
appRoot.find(".element1").css("color","red");
appRoot.find(".element2").css("color","blue");
VS
$(".element1").css("color","red");
$(".element2").css("color","blue");
查看測試結果(稍微不同的情形)。 jsperf minimize-jquery-object-creation事實證明,緩存的代碼段比未緩存的代碼段慢。
我想明白爲什麼?
這很有趣 – amosrivera
這就是代碼剖析如此重要的原因。 –
也許jquery .find()比DOM搜索慢? – Cristy