Минимизация экземпляра jQuery vs создание дополнительных экземпляров

Я начал серия сообщений по оптимизации 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 оказывается, что кешированный фрагмент медленнее, чем некэшированный фрагмент.

Я пытаюсь понять, почему?

9
задан adardesign 12 July 2011 в 09:52
поделиться