Je ne crois pas que ce soit une bonne idée d'enterrer du code HTML du côté serveur, ou même du code JavaScript. C'est une pratique généralement acceptée que vous devriez garder votre contenu, votre présentation et votre comportement séparés. Ceci est similaire à l'idée de MVC.
Il existe un plug-in pour JQuery appelé DataTables. C'est génial pour développer des tableaux HTML dynamiques sans avoir à coder à partir de zéro.
Cet exemple illustre un appel AJAX au serveur qui renvoie une réponse JSON représentant la table. Je crois que JSON est une meilleure option pour le transport de données, car il maintient votre contenu là où il appartient, côté client. Il rend également votre code côté serveur plus réutilisable, car d'autres applications côté client peuvent ensuite consommer ces données et les rendre dans n'importe quel format choisi par le client, qu'il s'agisse de HTML, XML, JSON ou de tout autre format.
http://www.datatables.net/examples/data_sources/server_side.html
Il est aussi un exemple d'ajouter une ligne à une table existante, sans recharger la page. Dans cet exemple, la ligne est transmise dans l'API en tant que tableau JSON. Cet exemple pourrait facilement être modifié pour prendre une série de tableaux, si vous retourniez plus d'une ligne de données dans votre réponse. Le principal avantage est qu'il existe des bibliothèques tierces pour convertir les objets côté serveur en JSON, et DataTables va bien sûr le convertir en HTML, éliminant ainsi le besoin de résoudre les bogues dans votre stratégie de génération HTML.
http://www.datatables.net/examples/api/add_row.html
En fin de compte, vos concepteurs web vous remercier pour garder le code HTML où ils peuvent facilement y accéder, sur le côté client, au lieu de enterré dans une fonction côté serveur entouré de code qu'ils peuvent ou peut ne pas être familier avec.
Ce que vous dites à propos des jointures de tableaux et de la concaténation de chaînes était vrai il y a des années. Les navigateurs ont fait des mises à niveau depuis lors et la concaténation est généralement plus rapide (dans IE8 c'est à peu près égal). Voir ce test http://jsperf.com/array-join-vs-string-connect – hradac
En effet - sur Chrome et Firefox c'est une amélioration significative! Je suis en train d'éditer ma réponse en ce moment ... – hamczu
Et la meilleure partie est que dans les navigateurs moins performants, la différence de vitesse n'est pas significative, il n'y a donc pas de mal à concaténer au lieu de se joindre au tableau. – hradac