Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   как правильно добавлять динамически элементы в дом? (https://javascript.ru/forum/dom-window/73114-kak-pravilno-dobavlyat-dinamicheski-ehlementy-v-dom.html)

7Feniks7 22.03.2018 11:38

как правильно добавлять динамически элементы в дом?
 
Здравствуйте!.
Получаю данные из базе и передаю их в js:
<?= "<script> testFunction(" . $data . ")</script>"?>

Интересует, это самый плохой вариант?. Есть ли лучший вариант?(без AJAX).

Дальше я вывожу его на странице и столкнулся с вопросом, а правильно ли это?
Вопросы о том, почему я это не делаю в php, ответ: не хочу нагружать сервер циклами или чем то другим.

Вариант 1:
function testFunction(data){
   let list = "";
   for(let n = 0, lengthN = data.length; n < lengthN; n++){
     list +="<li><a href=\"#\">test "+n+"</li>";
   }
document.getElementsByClassName("menu")[0].innerHTML = list;
}

Искал информацию за innerHTML встретил много за и против..

Вариант 2:
использовать appendChild().

Что лучше использовать в таком случае? (без использование сторонних
библиотек).

Aetae 22.03.2018 12:07

innerHTML в современном мире ничем не хуже appendChild, тем более на больших кусках кода.
А вот на счёт "не нагружания" сервера циклами - это перебор. PHP для того и предназначен. Разницы меж тем, что выделаете сейчас, и php-циклом, выводящим сразу html, сервер вообще не заметит.)

7Feniks7 22.03.2018 12:20

Спасибо за ответ!)


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