2009-12-04 4 views
10

J'aime bien que ces jours-ci, nous ayons une option pour obtenir notre contenu Web du serveur: nous pouvons faire une requête HTTP à l'ancienne (avec sa propre URL dans le navigateur) ou nous pouvons faire un appel AJAX et remplacer des parties du DOM à la volée.Obtenir du contenu: AJAX vs Appel HTTP "régulier"

Ma question est la suivante: comment décidez-vous quelle méthode utiliser quand il y a une option à utiliser?

Dans les «vieux jours» nous aurions à redessiner la page entière (y compris les parties qui n'ont pas changé) si nous voulions afficher un contenu mis à jour. Maintenant que AJAX a mûri, nous n'avons plus besoin de le faire. nous pourrions, peut-être, rendre une "page" une fois et juste mettre à jour les parties changeantes au besoin. Mais quelles seraient les conséquences de le faire? Y a-t-il une bonne règle pour faire un rechargement complet d'une page par rapport à un rechargement partiel d'une page via AJAX?

Répondre

12

Si vous souhaitez que les utilisateurs puissent mettre en signet des pages individuelles, utilisez des requêtes HTTP.

Si vous changez de contexte, utilisez des requêtes HTTP.

Si vous divisez la fonctionnalité entre différentes pages pour une meilleure maintenabilité, utilisez les requêtes HTTP.

Si vous souhaitez optimiser vos pages vues, utilisez des requêtes HTTP. Beaucoup de bonnes raisons d'utiliser encore les requêtes HTTP - Le débordement de pile est un merveilleux exemple de ces divisions entre les requêtes AJAX et HTTP. Déterminez pourquoi chaque fonction est HTTP ou AJAX et je suis sûr que vous en tirerez beaucoup plus de raisons d'utiliser chacun.

+3

Je suis très intéressé par cette discussion. Il y a cependant un point que je ne comprends pas: que voulez-vous dire par «changement de contexte»? – balteo

+0

Changer le contexte dans ce cas serait quelque chose comme: Je regarde mes informations de compte de contrôle Maintenant, je change de contexte pour regarder les taux hypothécaires. Je n'ai pas quitté le site des banques, mais ma tâche a changé: j'ai changé de contexte. – MikeEL

5

Ma règle simple:

Est-ce que tout ajax, surtout si c'est une application pas seulement des pages de contenu. Sauf si personnes sont susceptibles de vouloir créer un lien vers un contenu direct, comme dans un blog. Ensuite, il est plus facile de faire des pages entières régulières.

Bien sûr, il existe de nombreuses combinaisons, il ne doit pas être l'un ou l'autre complètement.

3

Une bonne partie du temps de développement est consacrée aux rechargements de page partielle avec AJAX. Vous devez créer des gestionnaires javascript supplémentaires pour toutes les données renvoyées. Si vous deviez renvoyer des blocs HTML complets, vous devez toujours spécifier l'emplacement du contenu et indiquer s'il remplace ou non d'autres contenus. Vous devrez potentiellement ré-afficher les balises d'en-tête pour refléter les changements de contenu et vous devrez implémenter une solution d'historique pour vous assurer que les moteurs de recherche peuvent indexer chaque page (en utilisant SWFAddress plugin jQuery, par exemple). Si vous renvoyez des données codées JSON, vous avez une étape de traitement supplémentaire. Le compromis pour une utilisation réduite de la bande passante en n'utilisant pas de rafraîchissement de page est compensé par une augmentation du code JS et des liaisons d'événements qui pourraient affecter la vitesse de rendu des pages ainsi que les effets visuels.

Tout dépend vraiment de votre public cible et de la sensation générale que vous essayez d'obtenir sur votre page. AJAX et preloaders sont flashy, et les gens aiment choses flashy. Si vous pensez que l'expérience de l'utilisateur final va s'améliorer en ajoutant des chargements de page partiels par tous les moyens, implémentez-les.