héritant des 5 exemples de New jQuery.ajax () (jQuery 1.9), je veux enregistrer les modifications provoquées en utilisant l'interface de promesse de jQuery .ajax () 1.9 (dont certaines peuvent être classées comme avantages).
- Nom: Apparemment, le nom a été modifié,
success
- & gt; done
, error
- & gt; 🎜>. fail
complete
always
différé: La promesse différée peut être liée à n'importe où dans l'application, entraînant une flexibilité et une réutilisabilité accrues. -
Ordre de rappel:
L'ordre de rappel est: 1. - , 2. , 3. . Ceci est la commande standard.
fail
done
always
Rappels multiples: Vous pouvez spécifier n'importe quel nombre de rappels du même type. Par exemple, - , tout cela sera licencié lorsque la demande Ajax reviendra et se termine.
.always(), .always(), .always()
Paramètres: (Le texte d'origine n'a pas été expliqué en détail, omis ici) -
CALLAGE CHANGE:
En commençant par jQuery 1.8, vous pouvez utiliser la fonction - pour enchaîner les demandes AJAX. Voir l'exemple ci-dessous.
.then()
combinaison: Vous pouvez combiner - et dans . Voir l'exemple ci-dessous.
.done()
.fail()
.then()
Source: jQuery.ajax API
Si vous constatez que j'ai manqué autre chose, n'hésitez pas à commenter.
// 旧的 complete 函数
complete Function(jqXHR jqXHR, String textStatus)
// 新的 done 函数
jqXHR.done(function(data, textStatus, jqXHR) {});
Copier après la connexion
combinant .done () et .fail () en .Then ()
Vous pouvez combiner les fonctions
et
dans une fonction
. Le code ci-dessus peut être réécrit comme: done()
fail()
then()
Source: différé et promesse en jQuery, demande Ajax enchaînée
var promise = $.ajax({
url: "/myServerScript"
});
promise.then(mySuccessFunction, myErrorFunction);
Copier après la connexion
Démarrer l'appel de la chaîne de jQuery 1.8 alors ()
En commençant par jQuery 1.8, vous pouvez appeler les fonctions
dans un ordre de chaîne. Dans le code suivant, exécutez d'abord
, après analyse réussie, exécutez
, renvoyez une promesse et après l'analyse réussie, exécutez une fonction anonyme. then()
promise1
getStuff
Chaque fonction de rappel recevra le résultat de la fonction asynchrone précédente.
var promise1 = $.ajax("/myServerScript1");
function getStuff() {
return $.ajax("/myServerScript2");
}
promise1.then(getStuff).then(function(myServerScript2Data) {
// 两个 Promise 都已解析
});
Copier après la connexion
Utiliser .When () comme promesse
Vous pouvez utiliser
pour attribuer une fonction de rappel de promesse, c'est-à-dire
.
.when()
.done()
Comme vous pouvez le voir, nous transmettons trois promesses à $. Quand, une pour l'animation Fade et deux pour les opérations Ajax.
- Le premier paramètre est une fonction anonyme auto-exécutée qui crée le gestionnaire différé et renvoie une promesse. Dans le rappel $.
dfd.resolve
fadeOut()
À propos des deux autres paramètres, nous passons à $. Lorsque le résultat de $ .ajax est un objet JQXHR qui implémente la promesse, nous passons simplement la valeur renvoyée telle quel.
-
Source: Gardez toujours votre promesse (jQuery), FAQ sur les avantages de JQuery 1.9 Ajax Promise Interface
Quels sont les principaux avantages de l'utilisation de l'interface JQuery 1.9 Ajax Promise?
Le principal avantage de l'utilisation de l'interface JQuery 1.9 Ajax Promise est qu'il peut gérer plusieurs demandes AJAX simultanément. Cette fonctionnalité est particulièrement utile lorsque vous devez effectuer plusieurs demandes AJAX et que vous souhaitez effectuer certaines opérations uniquement une fois toutes les demandes terminées. L'interface de promesse fournit une méthode pour agréger plusieurs résultats de demande AJAX et exécuter les fonctions de rappel jusqu'à ce que toutes les demandes soient terminées. Cela rend le code plus facile à lire et à gérer.
(Les réponses aux questions suivantes sont les mêmes que le texte d'origine, mais le libellé a été légèrement ajusté pour maintenir le texte d'origine.)
Comment améliorer la gestion des erreurs sur l'interface JQuery 1.9 Ajax Promise?
JQUERY 1.9 L'interface de promesse Ajax améliore la gestion des erreurs en fournissant un moyen unifié de gérer les erreurs. Sans écrire du code de traitement des erreurs séparé pour chaque demande AJAX, vous pouvez utiliser l'interface de promesse pour gérer toutes les erreurs en un seul endroit. Cela simplifie non seulement le code, mais rend également le code plus facile à maintenir et à déboguer.
Puis-je utiliser l'interface JQuery 1.9 Ajax Promise avec d'autres versions de jQuery?
Oui, vous pouvez utiliser l'interface JQuery 1.9 Ajax Promise avec d'autres versions de jQuery. Cependant, notez que l'interface de promesse a été introduite dans jQuery 1.5, donc elle ne fonctionne pas avec des versions antérieures. De plus, certaines fonctionnalités de l'interface Promise peuvent ne pas être disponibles dans les versions ultérieures de JQuery, il est donc toujours recommandé de vérifier la documentation de JQuery pour les problèmes de compatibilité.
jQuery 1.9 Comment l'interface Ajax Promise se compare-t-elle aux autres méthodes qui traitent les demandes AJAX?
L'interface JQuery 1.9 Ajax Promise a plusieurs avantages par rapport aux autres méthodes qui gèrent les demandes AJAX. Il fournit un moyen plus structuré et organisé de gérer plusieurs demandes AJAX, améliore la gestion des erreurs et rend le code plus facile à lire et à maintenir. Cependant, pour les débutants, cela peut être un peu plus compliqué que les autres méthodes.
Quelle est la différence entre une promesse et un objet différé de jQuery?
La promesse et les objets différés dans jQuery sont tous deux utilisés pour gérer les opérations asynchrones, mais elles ont des utilisations différentes. L'objet différé représente une unité de travail inachevée, tandis que l'objet Promise représente le résultat final des travaux. En d'autres termes, un objet différé peut être analysé ou rejeté, tandis qu'un objet de promesse ne peut être rempli ou rejeté.
Comment convertir un appel AJAX traditionnel en un appel AJAX basé sur les promesses?
La conversion d'un appel AJAX traditionnel en un appel AJAX basé sur des promesses implique d'emballer un appel AJAX dans une fonction qui renvoie un objet de promesse. L'objet Promise est ensuite analysé ou rejeté en fonction du succès ou de l'échec de l'appel AJAX.
Puis-je utiliser l'interface JQuery 1.9 Ajax Promise avec d'autres bibliothèques JavaScript?
Oui, vous pouvez utiliser l'interface JQuery 1.9 Ajax Promise avec d'autres bibliothèques JavaScript. Cependant, vous devez être conscient des problèmes de compatibilité potentiels, surtout si d'autres bibliothèques utilisent également une promesse ou des constructions similaires.
Comment utiliser l'interface JQuery 1.9 Ajax Promise pour gérer plusieurs demandes AJAX?
Vous pouvez utiliser la fonction $ .When () pour gérer plusieurs demandes AJAX à l'aide de l'interface JQuery 1.9 Ajax Promise. Cette fonction prend plusieurs objets Promise comme paramètres et renvoie un nouvel objet Promise qui résout lorsque tous les objets de promesse d'entrée sont analysés.
Que se passe-t-il si la demande Ajax échoue lors de l'utilisation de l'interface JQuery 1.9 Ajax Promise?
Si une demande Ajax échoue lors de l'utilisation de l'interface JQuery 1.9 AJAX Promise, l'objet Promise associé à la demande sera rejeté. Vous pouvez gérer cela en attachant le gestionnaire .fail()
à l'objet Promise, qui sera appelé si la promesse est rejetée.
Puis-je utiliser l'interface JQuery 1.9 Ajax Promise pour les opérations asynchrones non ajax?
Oui, vous pouvez utiliser l'interface JQuery 1.9 Ajax Promise pour les opérations asynchrones non ajax. L'interface de promesse est une construction générale pour gérer les opérations asynchrones, il peut donc être utilisé avec n'importe quelle opération qui ne peut pas être effectuée immédiatement, telles que la lecture de fichiers ou les bases de données de requête.
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!