Maison >interface Web >js tutoriel >Comment définir la fonction de rappel de réussite jQuery AJAX en dehors du bloc .ajax() ?

Comment définir la fonction de rappel de réussite jQuery AJAX en dehors du bloc .ajax() ?

DDD
DDDoriginal
2024-10-18 19:23:29331parcourir

How to Define jQuery AJAX Success Callback Function Outside of .ajax() Block?

JQuery AJAX Success Callback Function Definition Outside .ajax() Block

Dans jQuery, vous pouvez récupérer des données d'un serveur à l'aide du $. méthode ajax(). Généralement, la fonction de rappel de réussite est définie dans le bloc .ajax(). Cependant, il est possible de définir le rappel en dehors du bloc.

Définir la fonction de rappel en dehors du bloc .ajax()

Pour définir le rappel de réussite en dehors du . ajax(), vous devez renvoyer le résultat de $.ajax() comme suit :

<code class="javascript">function getData() {
    return $.ajax({
        url: 'example.com',
        type: 'GET'
    });
}</code>

Ensuite, vous pouvez utiliser la méthode .done() pour ajouter le rappel en dehors de l'appel .ajax() :

<code class="javascript">getData().done(handleData);</code>

Gestion des données

La fonction handleData peut être définie comme suit :

<code class="javascript">function handleData(data) {
    alert(data);
    // Do other stuff
}</code>

Les données transmises à la fonction handleData sont les données renvoyées par le serveur.

Avantages de la définition du rappel en dehors du bloc .ajax()

La définition du rappel en dehors du bloc .ajax() fournit plusieurs avantages :

  • Dissocie la gestion AJAX de la gestion des rappels.
  • Vous permet d'ajouter plusieurs rappels, gestionnaires d'erreurs, etc.
  • Permet une synchronisation plus facile de plusieurs événements asynchrones.

Exemple

Le code suivant montre comment utiliser cette technique :

<code class="javascript">// A trivial timer for demo purposes
var timer = $.Deferred();
setTimeout(timer.resolve, 5000);

// Add a `done` and an `error` handler to the AJAX call
var ajax = getData().done(handleData).fail(error);

// Wait for both the AJAX call and the timer to finish
$.when(timer, ajax).done(function() {
    // Both operations have finished
});

// Add an additional `done` handler to the AJAX call
ajax.done(function() {
    // Can be added even if the AJAX call has already finished
});</code>

Cette technique peut être utile pour découpler la fonctionnalité AJAX des actions ultérieures et pour synchroniser plusieurs opérations asynchrones.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn