Quand utiliser GET et POST dans Ajax

Lorsque vous utilisez Ajax (JavaScript asynchrone et XML) pour accéder au serveur sans recharger la page Web, vous avez deux choix sur la façon de transmettre les informations de la demande au serveur: GET ou POST.

Ce sont les deux mêmes options que vous avez lorsque vous transmettez des demandes au serveur pour charger une nouvelle page, mais avec deux différences. La première est que vous ne demandez qu'une petite information au lieu d'une page Web entière. La deuxième différence et la plus notable est que, puisque la demande Ajax n'apparaît pas dans la barre d'adresse, vos visiteurs ne remarqueront pas de différence lorsque la demande est faite.

Les appels effectués à l'aide de GET n'exposeront pas les champs et leurs valeurs partout où l'utilisation de POST n'expose pas également lorsque l'appel est effectué à partir d'Ajax.

Ce que vous ne devez pas faire

Alors, comment devrions-nous faire le choix quant à laquelle de ces deux alternatives doit être utilisée?

Une erreur que certains débutants pourraient faire est d'utiliser GET pour la plupart de leurs appels simplement parce que c'est le plus facile des deux à coder. La différence la plus notable entre les appels GET et POST dans Ajax est que les appels GET ont toujours la même limite sur la quantité de données qui peut être transmise que lors de la demande d'un nouveau chargement de page.

instagram viewer

La seule différence est que parce que vous ne traitez qu'une petite quantité de données avec une demande Ajax (ou du moins c'est comme ça que vous devrait l'utiliser), vous êtes beaucoup moins susceptible de rencontrer cette limite de longueur depuis Ajax comme vous le feriez avec le chargement d'un site Web complet page. Un débutant peut réserver à l'aide de requêtes POST pour les quelques cas où ils ont besoin de transmettre plus d'informations que la méthode GET permet.

La meilleure solution lorsque vous avez beaucoup de données à transmettre est de faire plusieurs appels Ajax en passant quelques informations à la fois. Si vous allez passer d'énormes quantités de données dans le même appel Ajax, vous feriez probablement mieux de simplement recharger toute la page car il n'y aura pas de différence significative dans le temps de traitement lorsque d'énormes quantités de données sont impliqué.

Donc, si la quantité de données à transmettre n'est pas une bonne raison de choisir entre GET et POST, que devons-nous utiliser pour décider?

Ces deux méthodes ont en fait été mises en place à des fins entièrement différentes, et les différences entre leur fonctionnement sont en partie dues à la différence dans leur utilisation. Cela s'applique non seulement à l'utilisation de GET et POST d'Ajax, mais vraiment partout où ces méthodes peuvent être utilisées.

Le but de GET et POST

GET est utilisé comme son nom l'indique: avoir information. il est destiné à être utilisé lorsque vous lisez des informations. Les navigateurs mettront en cache le résultat d'une demande GET et si la même demande GET est à nouveau effectuée, ils afficheront le résultat mis en cache plutôt que de réexécuter la demande entière.

Ce n'est pas une faille dans le traitement du navigateur; il est délibérément conçu pour fonctionner de cette façon afin de rendre les appels GET plus efficaces. Un appel GET ne fait que récupérer les informations; il n'est pas destiné à modifier des informations sur le serveur, c'est pourquoi demander à nouveau les données devrait retourner les mêmes résultats.

La méthode POST est pour affectation ou la mise à jour des informations sur le serveur. Ce type d'appel devrait modifier les données, c'est pourquoi les résultats renvoyés par deux appels POST identiques peuvent très bien être complètement différents l'un de l'autre. Les valeurs initiales avant le deuxième appel POST seront différentes des valeurs avant le premier car l'appel initial aura mis à jour au moins certaines de ces valeurs. Un appel POST obtiendra donc toujours la réponse du serveur plutôt que de conserver une copie en cache de la réponse précédente.

Comment choisir GET ou POST

Au lieu de choisir entre GET et POST en fonction de la quantité de données que vous transmettez dans votre appel Ajax, vous devez choisir en fonction de ce que l'appel Ajax fait réellement.

Si l'appel doit récupérer des données du serveur, utilisez GET. Si la valeur à récupérer devrait varier dans le temps à la suite de la mise à jour d'autres processus, ajoutez un paramètre de temps actuel à ce que vous passez dans votre appel GET afin que les appels ultérieurs n'utilisent pas une copie en cache antérieure du résultat qui n'est plus correct.

Utilisez POST si votre appel va écrire des données sur le serveur.

En fait, vous devez non seulement utiliser ce critère pour sélectionner entre GET et POST pour vos appels Ajax, mais également pour sélectionner ceux qui doivent être utilisés pour le traitement des formulaires sur votre page Web.