Этот код медленнее
var $editeddom = $container.somedomedits().somemoredomedits();
$containerwrapper.html($editeddom);
потому что он делает то же самое, что и
$container.somedomedits().somemoredomedits();
плюс присвоить переменную и запустить один дополнительный метод (html()
).
Это было бы быстрее, если бы вы создавали элементы на лету и вставляли их в дерево DOM после того, как вся структура была готова, но если вы извлекаете элементы из DOM с помощью селектора jQuery, вы получаете объект, который все еще " указывает на "ДОМ. Присвоение этой переменной не делает ее клонированной автоматически.
Вы можете клонировать этот объект, а затем запустить модификацию на клоне, и после того, как вы закончите, заменить содержимое, но вы должны сначала проверить, будет ли клонирование быстрее, чем то, что вы теряете, работая над DOM напрямую.
// clone part of DOM
// .clone(true) clones event handlers as well if you don't need it
// you can just run .clone()
var items = $(selector).clone(true);
// perform your complex operations
items.somedomedits().somemoredomedits();
// replace part of DOM with modified clones
$(selector).replaceWith(items);