7
votes

JQuery Ajax - Retourne JSON ou HTML uni mieux

Quand le temps retour de Ajax, Je devrais revenir en tant que JSON Coode et utiliser jquery.parsjson et utilisez document.createelement et appendez les données à l'intérieur de l'élément qui vient de créer.

ou il est préférable de revenir en tant que texte HTML? p>

exemple, p>

<div id="contentcontainer"></div>

$.ajax({
   type: "POST",
   url: "some.php",
   data: "name=John",
   success: function(msg){ 
     $('#contentcontainer').append(msg);
   }
 });

 //some.php
 if($_POST['name']){
    echo '<div style="color:red">'.$_POST['name'].'</div>';
 }


4 commentaires

JSON. Parce que cela réduira votre bande passante et séparera vos données de votre présentation. En outre, c'est une mauvaise idée des styles de codes Hard.


Je ne pense pas que cela réduira la bande passante. Uniqsign a déclaré: «Bien sûr, ce n'est qu'un exemple, le cas en temps réel aura lieu de nombreuses données, peut être au format de table HTML.» Vous suggérez d'encapsuler HTML à JSON qui prendra en effet plus de bande passante.


Désolé de vous deux, mon erreur, je n'ai pas l'intention de vouloir vouloir encapsuler HTML à JSON, je veux dire s'il a beaucoup de données, peut être plus facile pour moi d'écrire

de document.createelement.


En plus de cela, si vous écrivez beaucoup de document.createelement , $ ('# xx'). Ajout (données) Votre code sera plus long et difficile à lire , comparez-le à simplement HTML Markup

? Est-ce que je reçois le point?


3 Réponses :


0
votes

Oui, vous devez retourner HTML si vous n'avez pas de manipulation / interprétation à faire avec le résultat de votre appel AJAX.


4 commentaires

Peut-être que tout le monde sur ce fil a oublié la question initiale qui indique: mais pas sûr de la performance sage, ce qui est meilleur?


Je ne le vois pas comme ça, il y a du temps de traitement supplémentaire sur le serveur et sur le client lorsque vous encodez () + décodage () dans JSON.


La création de HTML sur le serveur sera plus chère que JSON. D'accord, donnez un exemple de dans quel format vous retourneriez les données de la page PHP?


La question indique "le cas réel, il aurait beaucoup de données, peut être dans le format de table HTML ."



0
votes

Non, je ne recommanderais pas de retourner html à partir de la page PHP. Ne renvoiez que les données JSON et analysez-la sur le côté du client et montrez sur l'interface utilisateur. parce que html sera toujours plus lourd que JSON. Donc, si vous utilisez JSON, il enregistre votre bande passante .

Si vous voulez un exemple, allez-y et vérifiez ce que twitter fait, ils ne renvoient que JSON puis manipulent JSON sur le côté du client.


5 commentaires

Oui Json sera la meilleure option pour obtenir des données de.


@uniq L'avantage est que vous pouvez gérer la structure de la hiérarchie de l'objet.


Je pense que la question principale concerne la performance. Renvoyer des données en vrac, encapsulant dans JSON et les traiter à la clientèle ajoutez beaucoup plus de temps de traitement dans ce cas particulier.


@ Sébastien Je ne parle pas de renvoyer des données en vrac excapsulées à JSON. Je parle de renvoyer l'objet PURE JSON puis de le manipuler sur le côté du client.


Ok vous recommandez une meilleure pratique et je suis d'accord avec votre approche. Dans le cas particulier de cette question, j'ai considéré le commentaire original "cas réel, il aurait de nombreuses données, peut être au format de table HTML."



5
votes

Sébastien et Zain ont des points valides. Cela dépend de ce que genre de performances dont vous parlez.

Si vous souhaitez réduire la bande passante de votre serveur, vous devez revenir à JSON et créer votre affichage à l'aide de JavaScript côté client.

Toutefois, si votre ensemble de données est important, sur la plupart des machines Création de votre site Web d'affichage pourrait être à la traîne du navigateur et que l'interface utilisateur devienne insensible. Si cela est important pour vous, vous pouvez envisager de retourner HTML du serveur.


0 commentaires