InnerHTML нам поможет

 

Чтобы уменьшить отрисовку отдельных частей документа в процессе добавления какого‑либо большого фрагмента, мы можем сохранять HTML‑код в виде текста и лишь на финальном этапе вставлять его в DOM‑дерево. Давайте рассмотрим следующий пример:

var i, j, el, table, tbody, row, cell;

el = document.createElement("div");

document.body.appendChild(el);

table = document.createElement("table");

el.appendChild(table);

tbody = document.createElement("tbody");

table.appendChild(tbody);

for (i = 0; i < 1000; i++) {

row = document.createElement("tr");

for (j = 0; j < 5; j++) {

cell = document.createElement("td");

row.appendChild(cell);

}

tbody.appendChild(row);

}

 

Его можно значительно ускорить, если добавлять узлы не последовательно один за другим, а сначала создав HTML‑строку со всем необходимым кодом, которая будет вставлена через innerHTML в конце всех операций.

В данном примере кроме уже указанного ускорения еще используется первоначальное создание массива элементов, которые можно объединить через свойство join в строку. Для больших строк это работает быстрее, чем последовательная конкатенация отдельных частей.

 

var i, j, el, idx, html;

idx = 0;

html = [];

html[idx++] = "<table>";

for (i = 0; i < 1000; i++) {

html[idx++] = "<tr>";

for (j = 0; j < 5; j++) {

html[idx++] = "<td></td>";

}

html[idx++] = "</tr>";

}

html[idx++] = "</table>";

el = document.createElement("div");

document.body.appendChild(el);

el.innerHTML = html.join("");

 








Дата добавления: 2015-05-19; просмотров: 1050;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.