limpiar - eliminar todas las filas de una tabla javascript
jquery-forma más rápida de eliminar todas las filas de una mesa muy grande (6)
Dos problemas que puedo ver aquí:
Los métodos empty () y remove () de jQuery realmente hacen bastante trabajo. Consulte el perfil de llamadas de función de JavaScript de John Resig para saber por qué.
La otra cosa es que para grandes cantidades de datos tabulares puede considerar una biblioteca de cuadrícula de datos, como las excelentes DataTables para cargar sus datos sobre la marcha desde el servidor, aumentando la cantidad de llamadas de red, pero disminuyendo el tamaño de esas llamadas. Tenía una tabla muy complicada con 1500 filas que se volvieron bastante lentas, cambiando a la nueva tabla basada en AJAX hizo que estos mismos datos parecieran bastante rápidos.
Pensé que esta podría ser una forma rápida de eliminar el contenido de una tabla muy grande (3000 filas):
$jq("tbody", myTable).remove();
Pero lleva unos cinco segundos completarlo en Firefox. ¿Estoy haciendo algo estúpido (aparte de tratar de cargar 3000 filas en un navegador)? ¿Hay una forma más rápida de hacerlo?
Es mejor evitar cualquier tipo de bucle, simplemente elimine todos los elementos directamente así:
$("#mytable > tbody").html("");
Podrías probar esto ...
var myTable= document.getElementById("myTable");
if(myTable== null)
return;
var oTBody = myTable.getElementsByTagName("TBODY")[0];
if(oTBody== null)
return;
try
{
oTBody.innerHTML = "";
}
catch(e)
{
for(var i=0, j=myTable.rows.length; i<j; i++)
myTable.deleteRow(0);
}
esto funciona para mí:
1- agregar clase para cada fila "removeRow"
2- en el jQuery
$(".removeRow").remove();
si quieres eliminar solo rápido ... puedes hacer lo siguiente:
$( "#tableId tbody tr" ).each( function(){
this.parentNode.removeChild( this );
});
pero, puede haber algunos elementos enlazados a eventos en la tabla,
en ese caso,
el código anterior no evita la pérdida de memoria en IE ... TT y no es rápido en FF ...
lo siento....
$("#your-table-id").empty();
Eso es lo más rápido que tienes.