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

Quelle est la différence entre $.ajax() et $.get() et $.load() ?

Qu'est-ce qui est le mieux à utiliser et dans quelles conditions?

153
demandé sur Bjoern 2010-10-06 10:54:54

9 réponses

$.ajax() est le plus configurable, où vous obtenez un contrôle à grains fins sur les en-têtes HTTP et autres. Vous pouvez également accéder directement à L'objet XHR en utilisant cette méthode. Un traitement des erreurs légèrement plus fin est également fourni. Peut donc être plus compliqué et souvent inutile, mais parfois très utile. Vous devez gérer vous-même les données retournées avec un rappel.

$.get() est juste un raccourci pour $.ajax() mais abstracts quelques-unes des configurations loin, en définissant des valeurs par défaut raisonnables pour ce qu'il vous cache. Renvoie les données à un rappel. Il ne permet que les requêtes GET-requests donc est accompagné de la fonction $.post() pour une abstraction similaire, seulement pour POST

.load() est similaire à $.get() mais ajoute une fonctionnalité qui vous permet de définir où dans le document les données retournées doivent être insérées. Par conséquent vraiment seulement utilisable lorsque l'appel seulement aura pour résultat HTML. Il est appelé un peu différemment de l'autre, Global, calls, car il s'agit d'une méthode liée à un élément particulier jQuery-wrapped DOM. Par conséquent, on ferait: $('#divWantingContent').load(...)

il convient de noter que tous $.get() , $.post() , .load() sont tous juste des emballages pour $.ajax() comme il est appelé à l'interne.

plus de détails dans L'Ajax-documentation de jQuery: http://api.jquery.com/category/ajax /

221
répondu Alexander Sagen 2010-10-06 07:14:14

les méthodes fournissent différentes couches d'abstraction.

  • $.ajax() vous donne le contrôle total sur la requête Ajax. Vous devriez l'utiliser si les autres méthodes ne répondent pas à vos besoins.

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

  • $(selector).load() exécutera une requête Ajax GET et définira le contenu des données retournées sélectionnées (qui doit être soit du texte soit du 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 $.load() , si les données retournées seront JSON qui doit être traité plus loin. Ici vous utilisez $.ajax() ou $.get() .

29
répondu Felix Kling 2010-10-06 07:00:08

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

jQuery.ajax()

Description: effectuer une requête HTTP (Ajax) asynchrone.

le monty complet, vous permet de faire tout type de demande Ajax.


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

jQuery.get()

Description: charger des données à partir du serveur en utilisant une requête HTTP GET.

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


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

.load()

Description: charger des données à partir du serveur et placer le HTML retourné dans le apparié élément.

spécialisé pour obtenir des données et l'injecter dans un élément.

9
répondu deceze 2010-10-06 07:00:25

très basique mais

  • $.load() : chargez un morceau de html dans un conteneur DOM.
  • $.get() : utilisez ceci si vous voulez faire un appel GET et jouer beaucoup avec la réponse.
  • $.post() : utilisez ceci si vous voulez faire un appel POST et ne voulez pas charger la réponse à un DOM de conteneur.
  • $.ajax() : utiliser ce si vous devez faire quelque chose quand XHR échoue, ou vous devez spécifier des options ajax (par exemple cache: true) à la volée.
7
répondu Tim 2017-05-02 11:41:05

remarque Importante : jQuery.load () méthode peut non seulement GET mais aussi POST requêtes, si données paramètre est fourni (voir: http://api.jquery.com/load / )

data Type: PlainObject ou String un objet simple ou une chaîne de caractères qui est envoyé au serveur avec la demande.

méthode de demande la méthode POST est utilisée si les données sont fournies objet; sinon, GET est supposé.

Example: pass arrays of data to the server (POST request)
$( "#objectID" ).load( "test.php", { "choices[]": [ "Jon", "Susan" ] } );
4
répondu pymen 2014-06-04 11:01:19

tout le monde a le droit. Les fonctions .load , .get , et .post , sont des façons différentes d'utiliser la fonction .ajax .

personnellement, je trouve le .fonction raw ajax très déroutant, et préfèrent utiliser la charge, get, ou post que j'en ai besoin.

la structure du poste est la suivante:

$.post(target, post_data, function(response) { });

GET est la suivante:

$.get(target, post_data, function(response) { });

la charge présente les caractéristiques suivantes::

$(*selector*).load(target, post_data, function(response) { });

comme vous pouvez le voir, il y a peu de différences entre eux, parce que c'est la situation qui détermine lequel utiliser. Besoin d'envoyer l'information à un fichier en interne? Utiliser. la poste (ce serait la plupart des cas). Besoin d'envoyer les informations de telle manière que vous pouvez fournir un lien vers le moment précis? Utiliser. obtenir. Deux d'entre elles permettent un rappel où vous pouvez gérer la réponse des fichiers.

An remarque importante est que .la charge agit de deux manières différentes. Si vous ne fournissez que l'url du document cible, il sera act comme une get (et je dis act parce que j'ai testé la vérification de $_POST dans le PHP appelé tout en utilisant par défaut .le comportement de charge et il détecte $_POST , pas $_GET ; peut-être serait-il plus précis de dire qu'il agit comme .post sans arguments); toutefois, comme la http://api.jquery.com/load/ dit, une fois que vous fournir un tableau d'arguments à la fonction, il publiera l'information dans le fichier. Quel que soit le cas est, des .la fonction load insérera directement les informations dans un élément DOM, qui dans de nombreux cas est très lisible, et très direct; mais fournit quand même un rappel si vous voulez faire quelque chose de plus avec la réponse. Outre. ,charger vous permet d'extraire un certain bloc de code à partir d'un fichier, vous donnant la possibilité d'enregistrer un catalogue, par exemple, dans un fichier html, et de récupérer des morceaux de celui-ci (articles) directement dans DOM elements.

3
répondu Isaac Levi Felix Salinas 2016-05-04 21:50:20
$.get = $.ajax({type: 'GET'});

$.load() est une fonction d'aide qui ne peut être invoquée que sur des éléments.

$.ajax() vous donne le plus de contrôle. vous pouvez spécifier si vous voulez poster des données, obtenir plus de callbacks, etc.

2
répondu jgauffin 2017-05-02 13:54:36

tout le monde a très bien expliqué le sujet. Il y a un autre point que je voudrais ajouter .la méthode load ().

comme dans Load document si vous ajoutez un sélecteur suffixé dans l'url des données, il n'exécutera pas de scripts dans le chargement du contenu.

Plongeur De Travail

            $(document).ready(function(){
                $("#secondPage").load("mySecondHtmlPage.html #content");
            })

d'un autre côté, après avoir supprimé selector dans url, les scripts dans le nouveau contenu s'exécuteront. Essayer cet exemple

après suppression du contenu #dans l'url de l'index.fichier html

            $(document).ready(function(){
                $("#secondPage").load("mySecondHtmlPage.html");
            })

il n'y a pas une telle caractéristique intégrée fournie par d'autres méthodes dans la discussion.

0
répondu Deepak Kumar 2016-07-15 12:44:45

les deux sont utilisés pour envoyer des données et recevoir une réponse en utilisant ces données.

GET : obtenir des informations stockées sur le serveur. (par ex. la recherche, tweets, les informations de personne). Si vous voulez envoyer des informations puis obtenir la demande envoyer la demande en utilisant process.php?name=subroto de sorte qu'il envoie essentiellement des informations par url. Url ne peut pas gérer plus de 2036 char. Alors pour blog post pouvez-vous vous rappeler que ce n'est pas possible?

POST : Post-faire la même chose que d'OBTENIR. Inscription de l'utilisateur, login de L'utilisateur, envoi de Big data, billet de Blog. Si vous avez besoin d'envoyer des informations sécurisées, alors utilisez post ou pour les données massives car il ne passe pas par url.

AJAX : $.get() et $.post() contiennent des caractéristiques qui sont des sous-ensembles de $.ajax() . Il a plus de configuration.

$.get () méthode, qui est une sorte de raccourci pour $.ajax() . En utilisant $.get () , à la place de passer dans un objet, vous passez dans les arguments. Au minimum, vous aurez besoin des deux premiers arguments, qui sont L'URL du fichier que vous voulez récupérer (par ex. test.txt) et un succès de rappel.

-1
répondu Subroto Biswas 2017-05-02 11:21:57