167 votes

Différence entre $.ajax() et $.get() et $.load()

Quelle est la différence entre $.ajax() et $.get() et $.load(). Quel est le meilleur à utiliser et dans quelles conditions.

232voto

Alexander Sagen Points 1683

$.ajax() est le plus configurable, où vous obtenez un contrôle précis sur les en-têtes HTTP et autres. Vous êtes également en mesure d'obtenir un accès direct à la XHR-objet à l'aide de cette méthode. Légèrement plus fine de gestion des erreurs est également fourni. Peut donc être plus compliqué et souvent inutiles, mais il est parfois très utile. Vous avez à traiter avec les données retournées vous-même avec un rappel.

$.get() est juste un raccourci pour $.ajax() , mais les résumés de certaines des configurations de loin, le réglage des valeurs par défaut raisonnables pour ce qu'il cache de vous. Renvoie les données à un rappel. Il permet seulement d'OBTENIR-la demande est accompagnée de l' $.post() fonction similaire abstraction, seulement pour le POST

.load() est similaire à l' $.get() mais ajoute des fonctionnalités qui vous permet de définir où dans le document, les données renvoyées doivent être insérées. Donc vraiment utilisable uniquement lors de l'appel seulement résultat en HTML. Il est appelé différemment par rapport à l'autre, mondial, des appels, comme c'est une méthode liée à un particulier jQuery-enveloppé élément du DOM. Par conséquent, on pourrait faire: $('#divWantingContent').load(...)

Il convient de noter que tous $.get(), $.post(), .load() sont tout simplement des wrappers pour $.ajax() comme il est appelé en interne.

Plus de détails dans l'Ajax de la documentation de jQuery: http://api.jquery.com/category/ajax/

29voto

Felix Kling Points 247451

Les méthodes d'offrir différentes couches d'abstraction.

  • $.ajax() vous donne le plein contrôle sur la requête Ajax. Vous devez les utiliser si les autres méthodes ne sont pas de répondre à vos besoins.

  • $.get() exécute une requête Ajax GET la demande. Les données renvoyées (qui peuvent être des données) sera transmise à votre gestionnaire de rappel.

  • $(selector).load() execute une requête Ajax GET demande et de définir le contenu des données renvoyées (ce qui devrait être un texte ou HTML).

Cela dépend de la situation de la méthode que vous devez utiliser. Si vous voulez faire des choses simples, il n'y a pas besoin de s'embêter avec $.ajax().

E. g. vous n'utiliserez pas de $.load(), si les données renvoyées seront JSON qui doit être traitée. Ici vous pourrez soit utiliser $.ajax() ou $.get().

9voto

deceze Points 200115

http://api.jquery.com/jQuery.ajax/

jQuery.ajax()

Description: Effectuer un HTTP asynchrones (Ajax) demande.

The full monty, permet de faire tout type de requête Ajax.


http://api.jquery.com/jQuery.get/

jQuery.get()

Description: Charger des données à partir du serveur à l'aide d'une requête HTTP GET.

Seulement vous permet de faire des requêtes HTTP GET, nécessite un peu de configuration.


http://api.jquery.com/load/

.load()

Description: Charger des données à partir du serveur et de placer le code HTML renvoyé dans la correspondance de l'élément.

Spécialisés pour obtenir des données et à l'injecter dans un élément.

8voto

Tim Points 4669
<ul> <li>Load() : charger un morceau de code html dans un conteneur de Dom</li> <li>$.get() : utilisez cette option si vous voulez faire un GET composer et jouer intensivement avec la réponse.</li> <li>$.post() : utilisez cette option si vous voulez faire un appel de poste et que vous ne voulez pas charger la réponse à certains conteneur DOM</li> <li>$.ajax() : utilisez cette option si vous avez besoin de faire quelque chose quand XHR échoue, ou vous devez spécifier les options ajax (par exemple en cache : vrai) à la volée.</li> </ul>

3voto

jgauffin Points 51913

$.obtenez de l' = $.ajax({type: 'GET'});

$.la charge est une fonction d'assistance qui ne peut être invoquée sur les éléments.

$.ajax vous donne plus de contrôle. vous pouvez spécifier si vous voulez afficher les données, a obtenu plus de rappels etc.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X