He descubierto que usar jQuery para crear HTML en el lado del cliente puede ser un gran refuerzo si se hace correctamente. Uso AJAX devolviendo JSON para recuperar contenido dinámico y luego construyo el HTML relevante y lo inserto usando jQuery. La primera vez que metí la pata con esta técnica, descubrí que el concatenador de cuerdas del JavaScript de IE funcionaba muy lentamente, por lo que crear una tabla dinámica con más de 50 filas funcionaba terriblemente.jQuery y anexar grandes cantidades de HTML
var shtml = '<table>';
for (var i = 0; i < 100; i++) {
shtml += '<tr><td>A bunch of content</td></tr>';
}
shtml += '</table>';
$('#myTable').append(shtml);
Luego encontré una técnica para la concatenación de cadenas que lo cambió todo. En lugar de utilizar las matrices de uso picadura +=
operador de concatenación de hacer;
var shtml = ['<table>'];
for (var i = 0; i < 100; i++) {
shtml.push('<tr><td>A bunch of content</td></tr>');
}
shtml.push('</table>');
$('#myTable').append(shtml.join(''));
Encontré que el rendimiento mejoró significativamente. Ahora, sin embargo, hay un techo de aproximadamente 100 filas antes de comenzar a ver que el navegador en sí tiene problemas para insertar dinámicamente tanto contenido a la vez. ¿Alguien tiene alguna sugerencia o técnica que pueda usarse para ayudarme a lograr el siguiente impulso de rendimiento para grandes conjuntos de HTML dinámico?
Una observación: En su ejemplo, en realidad está mostrando un aumento de rendimiento debido a la cuerda y variedad nativa de Javascript manipulación, no jQuery. –