Maison >interface Web >js tutoriel >Exemple de partage d'utilisation de when dans jQuery pour implémenter plusieurs requêtes AJAX correspondant à un seul callback_jquery

Exemple de partage d'utilisation de when dans jQuery pour implémenter plusieurs requêtes AJAX correspondant à un seul callback_jquery

WBOY
WBOYoriginal
2016-05-16 16:51:271257parcourir

Je sais que ces fonctions sont exécutées de manière asynchrone (asynchrone) et reviendront avec un délai, donc je veux savoir s'il existe un moyen d'utiliser un seul rappel pour les charger en parallèle, tout comme le chargeur JS curljs fait de cette façon. Heureusement pour moi ! Avec jQuery.when, je peux charger deux requêtes simultanément et n'exécuter le rappel qu'une seule fois

 !

jQuery Script
Comme je l'ai mentionné, voici un cas d'utilisation pour charger un script et une ressource JSON :

Copier le code Le code est le suivant :

$.when(
$.getScript('/media/js/wiki-min.js?build=21eb633'),
$ .getJSON(' https://developer.mozilla.org/en-US/demos/feeds/json/featured/')
).then(function(a, b) { // Ou vous pouvez également utiliser " .done"
// Ouais, le chargement est terminé, nous pouvons effectuer quelques opérations de dépendance ici.
});

Lorsque le chargement de la ressource est terminé, le rappel spécifié done ou then sera déclenché, afin que vous puissiez savoir que la demande a été terminée. Le type d'objet paramètre de rappel renvoyé par chaque requête est différent, donc la requête ci-dessus peut renvoyer les informations suivantes :

Copier le code Le le code est le suivant :

// Format : [réponse, état, jqxhr], [réponse, état, jqxhr]
["(function(c){var e=c(" .from-search-navigate" );if(e…;if(j){g.apply(m,l)}}}})(window,document,jQuery);", "succès", Objet]
[Tableau[15], "succès", Objet]

Si nous devons encore ajouter une requête AJAX XHR traditionnelle, telle qu'un modèle de widget, nous pouvons le faire :

Copier le code Le code est le suivant :

$.when(
$. getScript(' /media/js/wiki-min.js?build=21eb633'),
$.getJSON('https://developer.mozilla.org/en-US/demos/feeds/json/featured/ '),
$.get('/')
).then(function(a, b, c) {
console.log(a, b, c);
});

Dojo Toolkit propose ce genre de fonctionnalités depuis longtemps, mais je suis très heureux que jQuery puisse le faire aussi. Pour le développement actuel, il est naturel que plusieurs requêtes qui ne soient pas synchronisées et dont l'ordre de retour soit incertain partagent le même rappel, donc jQuery avance définitivement avec son temps

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