Ваш второй код даже не с тех пор.
$var cachedDOM = jQuery("body").html();
Я думаю, что вы имели в виду
var $cachedDOM = jQuery("body").html();
Тогда эта строка:
jQuery(cachedDOM)
относительно медленно
Вы эффективно клонируете весь HTML-код своей веб-страницы в этой строке, поэтому вы можете осуществлять поиск по ней, как обычный DOM,Было бы намного быстрее использовать ваш первый метод.Я думаю, что тип кэширования, который вы ищете, который дает увеличение переменной скорости, выглядит примерно так:
var $body = jQuery("body");
$body.find("#pageMain").html($body.find("#pageMain").html());
Увеличение скорости зависит от того, насколько сложен селектор.Например, поскольку большинство версий IE не имеют функции document.getElementsByClassName()
для использования jQuery, селектор с большим количеством классов будет работать довольно медленно и будет хорошей идеей кэшировать результат.Примером этого является: jQuery("div.left-column.highlighted li.link-list a.active");
Если вы выполните такую строку 1000 раз в IE с довольно сложным DOM по сравнению с кэшированием один раз и с использованием кэша 999 раз, вы можете получить заметную разницу в скорости.