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?
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 /
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 AjaxGET
. Les données renvoyées (qui peuvent être des données) sera transmise à votre gestionnaire de rappel. -
$(selector).load()
exécutera une requête AjaxGET
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()
.
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.
.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.
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.
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" ] } );
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.
$.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.
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.
$(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.
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.