Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 18.06.2010, 09:18
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Большой 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';

Всё работает прекрасно, даже лучше чем хотелось бы. Но вот я думаю, такой подход не ведёт за собой ничего плохого?
Ответить с цитированием
  #2 (permalink)  
Старый 18.06.2010, 09:20
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

Если у вас innerHTML дополняется таким образом несколько раз, то лучше сначала собирать всё в одну переменную, а потом уже приравнивать к ней innerHTML.
Ответить с цитированием
  #3 (permalink)  
Старый 18.06.2010, 09:27
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Сообщение от exec Посмотреть сообщение
Если у вас innerHTML дополняется таким образом несколько раз, то лучше сначала собирать всё в одну переменную, а потом уже приравнивать к ней innerHTML.
Нет, такой innerHTML у меня только один раз в течении выполнении функции, просто при повторном вызове функции нужно сделать ещё один, то есть сколько раз вызвали столько и innerhtml`ов
Ответить с цитированием
  #4 (permalink)  
Старый 18.06.2010, 09:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Vulkan
Но вот я думаю, такой подход не ведёт за собой ничего плохого?
Внутри элемента все дети будут пересозданы. Т.е. если на них были навешаны события, то уже будут не навешаны.
Ответить с цитированием
  #5 (permalink)  
Старый 18.06.2010, 09:36
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Сообщение от Kolyaj Посмотреть сообщение
Внутри элемента все дети будут пересозданы. Т.е. если на них были навешаны события, то уже будут не навешаны.
Ну я это уже учёл, всё работает гуд, если это все недостатки, то отлично. Значит не придётся ничего переписывать.
Ответить с цитированием
  #6 (permalink)  
Старый 18.06.2010, 11:15
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от Vulkan
Значит не придётся ничего переписывать
при пересоздании большого количества детей, будет скакать страница, и долго отрисовыватся
используйте лучше DOM_методы для дополнения
Ответить с цитированием
  #7 (permalink)  
Старый 22.06.2010, 13:52
Новичок на форуме
Отправить личное сообщение для Shevan Посмотреть профиль Найти все сообщения от Shevan
 
Регистрация: 04.06.2010
Сообщений: 4

Извиняюсь что не в свою тему лезу )
Цитата:
DOM_методы для дополнения
Я так понимаю это создаем новый елемент, например "див"
В него innerHTML
И потом его аппенчилдом вставляем куда надо.
Я правильно понял суть?
Ответить с цитированием
  #8 (permalink)  
Старый 22.06.2010, 13:56
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Да.
Ответить с цитированием
  #9 (permalink)  
Старый 22.06.2010, 13:57
Аватар для e1f
e1f e1f вне форума
Профессор
Отправить личное сообщение для e1f Посмотреть профиль Найти все сообщения от e1f
 
Регистрация: 03.04.2009
Сообщений: 1,263

Shevan, либо так, либо, если нужно вставить несколько элементов на одном уровне -- documentFragment
Ответить с цитированием
  #10 (permalink)  
Старый 22.06.2010, 14:05
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от e1f
ocumentFragment
он кросбраузерен?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
30(1|2) редирект от сервера. Или как лучше сделать редирект при верной отсылке форма. pizzZ AJAX и COMET 2 18.02.2010 09:06
Расширение прототипов встроенных обьектов: хорошо или плохо? hogart Общие вопросы Javascript 51 14.08.2009 11:56
ошибка с innerHTML Gekt0r Общие вопросы Javascript 15 21.08.2008 11:57