J'ai trouvé un grand nombre de modèles JavaScript côté navigateur qui rendent un modèle avec des valeurs de données une chaîne. Cependant, je ne sais pas très bien comment cette chaîne est censée être traduite pour afficher les éléments dans le DOM.Comment les moteurs de gabarit javascript côté navigateur rendent-ils les modèles?
De toute évidence, une façon est seulement document.write - mais je pense que cela a été enterré depuis longtemps.
Un autre utilise element.innerHTML, mais au moins il y a quelques années, cela ne faisait partie d'aucune norme, et cela ne fonctionnait pas pour les documents XHTML.
Alors, quel est le problème de nos jours? Est-ce que .innerHTML est celui qui convient et qui fonctionne parfaitement pour XHTML et fait partie d'une norme? Ou est-ce que les gens l'utilisent et ça marche? Ou y a-t-il autre chose qui est supporté? En outre, PURE.js semble être entièrement basé sur la création de templates à partir d'éléments DOM, ce qui me semble très attrayant - existe-t-il d'autres moteurs de templates fonctionnant de la même manière?
Je crois que 'innerHTML' a aussi tendance à être très rapide, comparé à vos méthodes DOM habituelles. (Insérer un avertissement d'optimisation prématurée.) Quand on y pense, 'innerHTML' prend une chaîne, et la transforme en noeud DOM, ce que font les navigateurs chaque fois qu'ils chargent une page web. Si un navigateur ne fait pas vite, c'est en difficulté. –
@Paul Dans Chrome DOM est plus rapide que 'innerHTML', dans Firefox ils sont à peu près les mêmes, et dans IE' innerHTML' est beaucoup, beaucoup plus rapide. – xj9
@indieinvader: hein, bon à savoir. Avez-vous des sources? Les tests que je peux trouver suggèrent qu'il n'y a pas beaucoup de différence entre les méthodes DOM et innerHTML dans les navigateurs non IE. 1) http://andrew.hedges.name/experiments/innerhtml/ 2) http://blog.nqzero.com/2009/11/javascript-rendering-performance.html –