У меня есть таблица с большим количеством строк (например, 10.000).
(Примечание: я понимаю, что нет смысла иметь большую таблицу, но я бы хотел понять поведение ниже).
Когда я получаю новые данные, я хочу сначала очистить строки. Как ни странно, очистка таблицы занимает гораздо больше времени, чем создание строк с нуля. Очистка строк таблицы с помощью html("")
или простой JS innerHTML = ""
занимает 1,5 минуты, что намного больше, чем создание самих строк, что занимает меньше секунды.
Итак, мой вопрос:
- Почему удаление элементов занимает больше времени, чем их добавление? Что происходит "за кулисами"?
(Обратите внимание, что мой вопрос - это Почему, я не ищу возможные обходные пути).
UPDATE
Я заметил, что в строке и ячейках таблицы есть применяемые к ним плавающие определения, и когда я удаляю float, таблица опустошается в экземпляре.
Мне все равно хотелось бы понять , почему float делает удаление строк намного медленнее.
Здесь скрипка: https://jsfiddle.net/maaikeb/t5pduuue/
В Chrome требуется 25 секунд, чтобы очистить таблицу, и только 23 ms, чтобы добавить его в DOM.
* Я читаю приведенные ниже сообщения, но они больше говорят о возможных решениях и меньше о том, почему удаление элементов занимает больше времени, чем их добавление, что на самом деле происходит, когда вы удаляете их.
jQuery пустой очень медленный
jQuery empty очень медленный
Каков наилучший способ удалить строку таблицы с помощью jQuery?
Удаление строк таблицы в javascript
jquery - самый быстрый способ удалить все строки из очень большой таблицы