DOM DocumentFragment: быстрее быстрого

DOM DocumentFragment: быстрее быстрого

DocumentFragment является облегченным контейнером для DOM-узлов. Он описан в спецификации DOM1 и поддерживается во всех современных браузерах (был добавлен в Internet Explorer в 6-й версии).

В спецификации говорится, что различные операции — например, добавление узлов как дочерних для другого Node — могут принимать в качестве аргумента объекты DocumentFragment; в результате этого все дочерние узлы данного DocumentFragment перемещаются в список дочерних узлов текущего узла.

Это означает, что если у нас есть группа DOM-узлов, которые мы добавляем к фрагменту документа, то после этого можно этот фрагмент просто добавить к самому документу (результат будет таким же, если добавить каждый узел к документу в индивидуальном порядке). Тут можно заподозрить возможный выигрыш в производительности. Оказалось, что DocumentFragment также поддерживает метод cloneNode. Это обеспечивает нас полной функциональностью для экстремальной оптимизации процесса добавления узла в DOM-дерево.

Давайте рассмотрим ситуацию, когда у нас есть группа узлов, которую нужно добавить к DOM-дереву документа (в тестовой версии это 12 узлов — 8 на верхнем уровне — против целой кучи div).

var elems = [

document.createElement("hr"),

text( document.createElement("b"), "Links:" ),

document.createTextNode(" "),

text( document.createElement("a"), "Link A" ),

document.createTextNode(" | "),

text( document.createElement("a"), "Link B" ),

document.createTextNode(" | "),

text( document.createElement("a"), "Link C" )

];

function text(node, txt){

node.appendChild( document.createTextNode(txt) );

return node;

}

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг:

Что быстрее: gzip или канал?

Из книги автора

Что быстрее: gzip или канал? Модель хорошо аппроксимирует полученные данные, поэтому примем ее за основу для следующих вычислений. Нам нужно, на самом деле, установить, насколько процессорные издержки на сжатие превосходят (или, наоборот, меньше) издержек на передачу


Что быстрее?

Из книги автора

Что быстрее? Да, очевидно, что размер DOM-дерева влияет на скорость загрузки страницы. Одной из целей данного исследования было показать, как именно влияет (в конкретных числах). Средний размер страницы — 700-1000 элементов. Они загрузятся в дерево сравнительно быстро (3-7 мс, без


А если еще быстрее?

Из книги автора

А если еще быстрее? Давайте подумаем еще немного. Зачем нам каждый раз создавать фрагмент документа, если мы для этой цели можем использовать обычный его узел (фактически создавать кэш нашего узла, который мы собираемся везде менять)? Так можно прийти к следующему


Метод быстрого голосования

Из книги автора

Метод быстрого голосования Все участники сидят за столом. Задачи рассматриваются последовательно. Для каждой задачи проводится краткое обсуждение, описываются возможные усложняющие факторы и возможная реализация. Затем участники опускают руку под стол и поднимают от 0


Быстрее и лучше

Из книги автора

Быстрее и лучше Чтобы растения росли максимально быстро, пашня должна быть увлажнена, а урожай – хорошо освещен в ночное время. Для увлажнения пашни поместите источник воды в пределах четырех блоков. Если у вас пока нет ведра для воды, сажайте растения около пруда.


7.6. Проще, удобнее, быстрее

Из книги автора

7.6. Проще, удобнее, быстрее Процесс конфигурирования должен быть максимально удобным. Если все настройки будут нагромождены в одном файле /etc/httpd/conf/httpd.conf, то разобраться в них станет очень сложно. А чем больше параметров, тем выше вероятность, что вы что-либо прозеваете.


Панель быстрого запуска

Из книги автора

Панель быстрого запуска Панель быстрого запуска находится в самом верху, рядом с Кнопкой «Office»  (рис. 3.3). На нее можно (и нужно) помещать кнопки, которыми вы чаще всего пользуетесь. Рис. 3.3. Панель быстрого запуска У меня пока на ней кнопки Сохранить, Отменить и


Панель быстрого доступа

Из книги автора

Панель быстрого доступа Панель быстрого доступа – важный элемент интерфейса Word 2007, повышающий удобство работы пользователя.Внешне Панель быстрого доступа похожа на привычную инструментальную панель (рис. 2.2), присутствующую в прежних версиях программы: ее кнопки


Панель быстрого доступа

Из книги автора

Панель быстрого доступа Панель быстрого доступа – это вспомогательная панель, расположенная справа от Кнопки «Office», на которую вы можете добавить кнопки и элементы управления, используемые наиболее часто. По умолчанию Панель быстрого доступа содержит всего три кнопки:


Больше, лучше, быстрее

Из книги автора

Больше, лучше, быстрее Реализация делегатов, которую мы рассмотрели выше, вполне работоспособна. Тем не менее, некоторые её особенности вызывают озабоченность. Во-первых, интенсивное использование шаблонов может привести к чрезмерному разбуханию кода. Во-вторых, объекты


Клавиши быстрого доступа

Из книги автора

Клавиши быстрого доступа Сейчас многие клавиатуры, кроме стандартных клавиш, имеют дополнительные, например для запуска Калькулятора, окна Компьютер, Проигрывателя Windows Media, Outlook Express и т. д. У меня именно такая клавиатура, но должен признаться, что очень долгое время я


FERRMA: Быстрее, быстрее, сейчас же… Немедленно!

Из книги автора

FERRMA: Быстрее, быстрее, сейчас же… Немедленно! Автор: Алексей СтародымовТак уж сложилось, что производители мобильных телефонов не считают нужным сообщать, какая именно аппаратная платформа используется в той или иной модели, семействе или даже поколении устройств. Оно и


Панель быстрого доступа

Из книги автора

Панель быстрого доступа Наличие панели быстрого доступа в окне Photoshop CS4 сразу бросается в глаза, как и отсутствие привычной строки заголовка с названием программы. Панель быстрого доступа должна быть вам знакома, например, по программам пакета Microsoft Office 2007. Примечание При


Глава 8  Как заставить компьютер работать быстрее

Из книги автора

Глава 8  Как заставить компьютер работать быстрее  Способы повышения производительности Говорят, что торопить компьютер – это все равно что торопить женщину. Но на практике оказывается, что заставить компьютер работать быстрее все же можно.Вот некоторые способы