JQuery пустой очень медленно - PullRequest
       10

JQuery пустой очень медленно

5 голосов
/ 24 сентября 2011

Я пытаюсь очистить таблицу HTML, содержащую около 200 строк, используя $("#mytable").empty(). Пока он очищает строки, я больше ничего не могу сделать, похоже, пользовательский интерфейс заблокирован.

Это правильная функция для использования? Можно ли выполнить эту операцию в фоновом режиме, чтобы минимизировать заметное отставание?

Ответы [ 4 ]

9 голосов
/ 24 сентября 2011

У меня никогда не было такой проблемы, однако я бы предложил это:

$("#mytable").children().detach().remove();

Скорее всего, это займет некоторое время из-за очистки, которую jQuery выполняет для элементов. Если их отсоединить, это может произойти быстрее.

4 голосов
/ 24 сентября 2011

как насчет просто:

document.getElementById('mytable').innerHTML = "";
3 голосов
/ 29 марта 2013

$. Empty () медленно, если много детей, я использую:

var containerNode = document.getElementById("content");
while (containerNode.hasChildNodes()) {
    containerNode.removeChild(containerNode.lastChild);
}
0 голосов
/ 24 сентября 2011

Вы можете просто удалить саму таблицу:

$('#mytable').remove()

Или только дочерние элементы таблицы:

$('#mytable').children().remove()
...