Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Создание таблицы (https://javascript.ru/forum/dom-window/64344-sozdanie-tablicy.html)

renatdmit 10.08.2016 12:12

Цитата:

Сообщение от warren buffet (Сообщение 424913)
С таблицей с миллионом строк может стать заметной разница, но где оппонент такие таблицы-то видел на вебе и кто вообще такими сможет оперировать?

На 3 тысячах разница уже ощутима при не самом мощном ноуте 8-летней давности. И я не ваш оппонент. Чтобы вам оппонировать нужны от вас какие-то аргументы, отличающиеся от "делай как все, нигилист, а не через жопу".

Цитата:

Но тут важен не выбор метода, а смысл темы. ТС просто не знал про инсерты и применил известный ему метод как просто известный и освоенный, а вовсе не с явным умыслом ускорить там чего-то блин.
Это другое дело, но аргументы в пользу того или иного метода все равно нужны, чтобы человек делал сознательный выбор, а не потому что кто-то, тщащийся показаться авторитетным, ему это сказал.

Цитата:

Кстати, инсерт работает с таблицей, а для аппенда нужно еще tbody создать явно или явно получить.
Какой кошмар, это ж неделю кодить придется! :haha:

renatdmit 10.08.2016 12:15

рони,

Милый друг, я 2 недели назад первый раз открыл первую книжку по javascript, но даже мне не приходит в голову создавать в цикле TD

var cell= document.createElement('td');

когда есть cloneNode

Будьте любезны, посмотрите мой код. И учитесь пока я еще не стал мега гуру и не покинул вас, как безнадежных. :p

warren buffet 10.08.2016 12:21

Цитата:

Сообщение от renatdmit
ячейки просто копируются из любой строки

Ну если тебе нужна пустая таблица на 1000 строк, то просто нарисуй хтмл в переменной и вставь как innerHTML в body и замерь что быстрее, лал.

renatdmit 10.08.2016 12:23

warren buffet,

Уважаемый профессор, посмотрите пожалуйста мой код, я заполняю его данными для чистоты эксперимента.

рони 10.08.2016 12:27

renatdmit,
спасибо, а тест можно что быстрее cloneNode или createElement?

warren buffet 10.08.2016 12:28

Цитата:

Сообщение от renatdmit
при не самом мощном ноуте 8-летней давности.

Вот в чем проблема, денег на новый ноут нету, и будем заниматься premature optimization.

рони 10.08.2016 12:29

warren buffet,
renatdmit,

рони 10.08.2016 12:32

renatdmit,
warren buffet,

warren buffet 10.08.2016 12:33

Цитата:

Сообщение от renatdmit
я заполняю его данными

Вот такими да? - row.insertCell().innerHTML = i;

У тебя же нет никакого хтмля в i, там просто число, то есть тут вообще-то .textContent, но, у тебя же нет текстовой ноды, поэтому ты рисуешь .innerHTML, а это значит проворачиваешь для каждой ячейки могучий парсер браузера. Поэтому твой ноут и тормозит как из пушки по воробьям.

Нарисуй массив и сделай из него таблицу своими аппендами.

renatdmit 10.08.2016 12:48

рони,

Цитата:

Сообщение от рони (Сообщение 424920)
renatdmit,
спасибо, а тест можно что быстрее cloneNode или createElement?

В вашем случае вынужден извиниться. AppendChild в цикле работает даже чуть быстрей чем cloneNode, разница процентов в 10. Тормозной только InsertRows. :agree:


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