Je voulais voir différentes opinions / opinions à ce sujet. P>
J'ai JQuery invoquant une fonction à travers Ajax. Il charge des données de deux manières: p>
Le script Ajax charge les données JSON du même serveur, puis utilise JS pour l'analyser et l'ajouter à HTML. P> LI>
Le script AJAX chargée du script complet HTML / Script Configurez directement via ce script PHP appelé puis JS l'appendez à HTML DIV. P> LI> ol>
Je suppose que n ° 1 est plus rapide puisqu'il chargera une matrice JSON de base, utilise ensuite JS pour l'analyser et ajouter au HTML. P>
opinions? p>
merci! p>
6 Réponses :
Dire que l'une de ces deux solutions est plus rapide n'est pas possible: tout dépend de ce que vous faites, que ce soit sur le côté PHP ou sur le côté JS. P>
Ce que vous devriez considérer, principalement, c'est la difficulté de développer ces solutions - et si cela signifie dupliquer certains efforts: P>
Faire des choses sur votre serveur signifie: p>
En fin de compte, si je peux vous indiquer à la réponse que j'ai donnée sur cette question: Pourquoi est-ce une mauvaise pratique de retourner HTML généré au lieu de JSON? Ou est-ce? Strong> p>
La réponse à cette question dépend de nombreux facteurs, notamment: P>
Généralement, sur une sortie de données de base, recommanderiez-vous simplement un rendu PHP régulier? La sortie que j'ai maintenant est très basique; Pas plus de 10 lignes de données, chaque ne pas plus de 128 caractères par valeur.
@Michael: Cela dépend vraiment. La séparation du marquage et des données est généralement une bonne idée, tant que les inconvénients ne l'emportent pas sur les avantages (voir quelques problèmes potentiels ci-dessus). À en juger par votre commentaire, vous faites quelque chose de assez trivial, alors cela ne devrait donc pas nuire à renforcer les bonnes pratiques tôt et séparer les données du balisage. Juste mon 2c :)
Il y a beaucoup de variables. # 1 mai em> être plus rapide, à condition que votre JavaScript ne assemble pas le résultat au fragmenté et en supposant que les données soient nettement em> plus petites que le marquage équivalent. Si vous assemblez le résultat à la pièce, ou si les données ne sont pas beaucoup plus petites que le balisage, il pourrait bien être plus lent. Cela dépend également de la vitesse de la connexion réseau de l'utilisateur par rapport à la vitesse de leur processeur et de leur navigateur (chrome est assez rapide, c'est-à-dire assez lent), etc. sur le truc par coup: par exemple, si vous chargez une table de 200 lignes et vous construisez les rangées comme ceci: p> ... alors cela va probablement être assez lent par rapport à la façon dont le navigateur fleurirait à travers le marquillage équivalent. p> Si, cependant, vous le faites plus comme ceci: p> markup = [];
for (index = 0; index < stuff.length; ++index) {
markup.push("<tr>");
markup.push("<td>" + stuff[i].a + "</td>");
markup.push("<td>" + stuff[i].b + "</td>");
markup.push("<td>" + stuff[i].c + "</td>");
markup.push("</tr>");
}
tableBody.append(markup.join(""));
C'est une sortie de 10 lignes. Donc c'est très basique. En fait, j'avais initialement organisé la deuxième façon dont vous fournissez, mais j'ai changé en premier, pensant que c'était plus rapide. Je suppose que je devrai expérimenter; Si la différence est <100ms, alors aucun besoin de gâcher avec elle.
@Michael: S'il s'agit de 10 rangées, disons simplement qu'il devrait être un Lot b> de colonnes ou de structures très compliquées très compliquées impliquées pour vous remarquer une différence. :-)
Comment cela se compare-t-il à la construction de l'objet exact DOM en mémoire? Markup = $ ("
Quel type de données est-ce et quel est le ratio de données / marquage?