Je suis venu à trouver que l'utilisation de jQuery pour créer HTML côté client peut être un énorme booster de performance si elle est faite correctement. J'utilise AJAX renvoyant JSON pour récupérer du contenu dynamique, puis je compile le code HTML approprié et l'insère en utilisant jQuery. La première fois que j'ai manipulé cette technique, j'ai trouvé que le concaténateur de chaînes dans le JavaScript d'IE fonctionnait très lentement, de sorte que la construction d'une table dynamique avec plus de 50 lignes était terriblement performante. Puis j'ai trouvé une technique pour la concaténation de chaînes qui a tout changé. Au lieu d'utiliser l'opérateur dièse +=
utiliser des tableaux pour faire concaténation;jQuery et d'ajouter de grandes quantités de HTML
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(''));
J'ai constaté que les performances se sont améliorées de manière significative. Maintenant, cependant, il y a un plafond d'environ 100 lignes avant que je commence à voir le navigateur lui-même lutter avec l'insertion dynamique autant de contenu à la fois. Est-ce que quelqu'un a des pointeurs ou des techniques qui peuvent être utilisés pour m'aider à atteindre la prochaine amélioration des performances pour de grands ensembles de HTML dynamique?
Une observation: Dans votre exemple, vous êtes vraiment montrer un gain de performances en raison de la manipulation chaîne native et tableau de Javascript, pas jQuery. –