Я начал серия сообщений по оптимизации javascript / jQuery и наткнулась на этот интересный результат.
Почему минимизация объектов 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 minim-jquery-object-creation оказывается, что кешированный фрагмент медленнее, чем некэшированный фрагмент.
Я пытаюсь понять, почему?