J'ai une vue asp.net mvc qui, à l'aide de jquery ajax, met à jour un div. Dois-je utiliser un contrôleur qui renvoie un PartialView ou un json ? Et les performances ?
Réponses
Trop de publicités?Je pencherais moi-même pour JSON. La raison en est que JSON vous offre la flexibilité de ramener des données différentes, par exemple
Vous pourriez obtenir 100 résultats, ET des métadonnées sur ces résultats (mots-clés, regroupement, etc.) ET des informations sur le nombre de résultats supplémentaires disponibles, la fraîcheur des résultats, les informations sur la pagination...
De même, d'autres informations non liées peuvent revenir - messages d'état, indicateurs "nouveau courrier", etc.
Avec le retour en HTML pur, vous limitez les possibilités de faire autre chose que de mettre à jour le contenu HTML d'un conteneur.
Si vous souhaitez que l'utilisateur puisse passer d'une vue à l'autre et que ces données peuvent être incluses au chargement de la page, il suffit d'inclure onload, puis hide/show ou load as json, puis de les remplir selon les besoins.
S'il s'agit d'une demande très simple qui doit être mise à jour au besoin et que vous ne prévoyez pas d'autres besoins similaires dans votre application, renvoyez simplement le code html.
Cependant, si vous faites une requête qui soumet des données ou exécute une action, je suis un fan du retour d'une réponse json cohérente avec des éléments booléens d'erreur, de message d'erreur et de contenu/données.
Pour moi, le le plus cool de faire AJAX est de retourner des paquets de données minces, pas du HTML pré-rendu. Je dirais donc d'opter pour l'option JSON...
... Mais tout dépend de vos besoins. Il est beaucoup plus facile d'afficher des extraits HTML préenregistrés, donc si vous avez besoin de quelque chose de rapide, une vue partielle peut être une meilleure option.
Mais tout cela a déjà été discuté auparavant. Jetez donc un coup d'œil à ce lien : La réponse AJAX : XML, HTML ou JSON ? . L'auteur présente un bon résumé, indépendant de la plateforme, des 3 principales options de réponse AJAX, avec les avantages et les inconvénients de chacune.
Si vous comprimez la réponse, retournez le HTML, sinon retournez le JSON et construisez le HTML côté client. Dans un monde idéal, votre serveur devrait toujours compresser la réponse, mais vous pouvez avoir un serveur mal configuré qui n'est pas sous votre contrôle. L'objectif de ma réponse est de rester simple car, côté serveur, la différence entre la construction de HTML et de JSON est assez minime. De plus, la construction de HTML sur le client peut être un peu lente pour les utilisateurs ayant des machines obsolètes. (Ou les navigateurs... vous savez de quel navigateur je parle...)
Note : Ma réponse doit être comprise dans le contexte le plus général. Si je ne connais pas votre pile technologique et votre marché cible, je n'aurais pas le droit de répondre autrement. N'oubliez pas que la plupart des règles de programmation sont plutôt des lignes directrices.
- Réponses précédentes
- Plus de réponses