Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Большой innerHTML: плохо или хорошо? (https://javascript.ru/forum/dom-window/10075-bolshojj-innerhtml-plokho-ili-khorosho.html)

Vulkan 18.06.2010 09:18

Большой innerHTML: плохо или хорошо?
 
Здравствуйте, вот при написания скриптов столкнулся с вопросом, в функции понадобился дополняющийся (+=) innerHTML такового вида -
document.getElementById('someid').innerHTML+= '<li id="some'+var+'"><div class="some_info"><b>'+s_var+'</b><br><span class="some_type">'+st_var+'</span>... и ещё три строчки HTML,a';

Всё работает прекрасно, даже лучше чем хотелось бы:). Но вот я думаю, такой подход не ведёт за собой ничего плохого?

exec 18.06.2010 09:20

Если у вас innerHTML дополняется таким образом несколько раз, то лучше сначала собирать всё в одну переменную, а потом уже приравнивать к ней innerHTML.

Vulkan 18.06.2010 09:27

Цитата:

Сообщение от exec (Сообщение 60005)
Если у вас innerHTML дополняется таким образом несколько раз, то лучше сначала собирать всё в одну переменную, а потом уже приравнивать к ней innerHTML.

Нет, такой innerHTML у меня только один раз в течении выполнении функции, просто при повторном вызове функции нужно сделать ещё один, то есть сколько раз вызвали столько и innerhtml`ов

Kolyaj 18.06.2010 09:29

Цитата:

Сообщение от Vulkan
Но вот я думаю, такой подход не ведёт за собой ничего плохого?

Внутри элемента все дети будут пересозданы. Т.е. если на них были навешаны события, то уже будут не навешаны.

Vulkan 18.06.2010 09:36

Цитата:

Сообщение от Kolyaj (Сообщение 60007)
Внутри элемента все дети будут пересозданы. Т.е. если на них были навешаны события, то уже будут не навешаны.

Ну я это уже учёл, всё работает гуд, если это все недостатки, то отлично. Значит не придётся ничего переписывать.:)

Gvozd 18.06.2010 11:15

Цитата:

Сообщение от Vulkan
Значит не придётся ничего переписывать

при пересоздании большого количества детей, будет скакать страница, и долго отрисовыватся
используйте лучше DOM_методы для дополнения

Shevan 22.06.2010 13:52

Извиняюсь что не в свою тему лезу )
Цитата:

DOM_методы для дополнения
Я так понимаю это создаем новый елемент, например "див"
В него innerHTML
И потом его аппенчилдом вставляем куда надо.
Я правильно понял суть?

Riim 22.06.2010 13:56

Да.

e1f 22.06.2010 13:57

Shevan, либо так, либо, если нужно вставить несколько элементов на одном уровне -- documentFragment

Gvozd 22.06.2010 14:05

Цитата:

Сообщение от e1f
ocumentFragment

он кросбраузерен?


Часовой пояс GMT +3, время: 13:38.