Achei que essa seria uma maneira rápida de remover o conteúdo de uma tabela muito grande (3.000 linhas):
$jq("tbody", myTable).remove();
Mas está demorando cerca de cinco segundos para ser concluído no Firefox. Estou fazendo algo estúpido (além de tentar carregar 3.000 linhas em um navegador)? Existe uma maneira mais rápida de fazer isso?
javascript
jquery
dom
morgancodes
fonte
fonte
$('#mytable tbody').empty();
. Isso garante que apenas o corpo seja esvaziado.É melhor evitar qualquer tipo de loops, apenas remova todos os elementos diretamente desta forma:
fonte
html("")
ligaçõesempty()
internasUsar desanexar é magnitudes mais rápidas do que qualquer uma das outras respostas aqui:
Não se esqueça de colocar o elemento tbody de volta na tabela, pois a separação o removeu:
Observe também que, ao falar, a
$(target).find(child)
sintaxe de eficiência é mais rápida do que$(target > child)
. Por quê? Chiar!Tempo decorrido para esvaziar 3.161 linhas da tabela
Usando o método Detach () (conforme mostrado no meu exemplo acima):
Usando o método empty ():
fonte
Não vai tocar nos cabeçalhos.
fonte
Dois problemas que posso ver aqui:
Os métodos empty () e remove () do jQuery realmente fazem um bom trabalho. Consulte o Perfil de Chamada de Função JavaScript de John Resig para saber o motivo.
A outra coisa é que para grandes quantidades de dados tabulares você pode considerar uma biblioteca de datagrid como o excelente DataTables para carregar seus dados em tempo real do servidor, aumentando o número de chamadas de rede, mas diminuindo o tamanho dessas chamadas. Eu tinha uma tabela muito complicada com 1.500 linhas que ficava bem lenta, mudar para a nova tabela baseada em AJAX fazia com que esses mesmos dados parecessem bastante rápidos.
fonte
se você quiser remover apenas rápido .. você pode fazer como abaixo ..
mas, pode haver alguns elementos vinculados a eventos na tabela,
nesse caso,
o código acima não impede o vazamento de memória no IE ... TT e não é rápido no FF ...
Desculpe....
fonte
isso funciona para mim:
fonte
Você poderia tentar isso ...
fonte