Heim  >  Artikel  >  Web-Frontend  >  Beispielfreigabe für die Verwendung von when in jQuery zur Implementierung mehrerer AJAX-Anfragen, die einer einzelnen callback_jquery entsprechen

Beispielfreigabe für die Verwendung von when in jQuery zur Implementierung mehrerer AJAX-Anfragen, die einer einzelnen callback_jquery entsprechen

WBOY
WBOYOriginal
2016-05-16 16:51:271221Durchsuche

Ich weiß, dass diese Funktionen asynchron (asynchron) ausgeführt werden und mit einer Verzögerung zurückkehren, daher möchte ich wissen, ob es eine Möglichkeit gibt, sie mit einem einzigen Rückruf parallel zu laden, genau wie der JS-Loader „curljs“. funktioniert so. Zum Glück kann ich mit jQuery.when zwei Anfragen gleichzeitig laden und den Rückruf nur einmal ausführen!

jQuery-Skript

Wie ich bereits erwähnt habe, ist hier ein Anwendungsfall zum Laden eines Skripts und einer JSON-Ressource:

Code kopieren Der Code lautet wie folgt:
$.when(
$.getScript('/media/js/wiki-min.js?build=21eb633'),
$ .getJSON(' https://developer.mozilla.org/en-US/demos/feeds/json/featured/')
).then(function(a, b) { // Oder Sie können auch „ .done"
// Juhu, der Ladevorgang ist abgeschlossen, wir können hier einige Abhängigkeitsoperationen durchführen.
});

Wenn das Laden der Ressource abgeschlossen ist, wird der angegebene „Done“- oder „Then“-Rückruf ausgelöst, sodass Sie wissen, dass die Anforderung abgeschlossen wurde. Der Typ des von jeder Anfrage zurückgegebenen Rückrufparameterobjekts ist unterschiedlich, sodass die obige Anfrage möglicherweise die folgenden Informationen zurückgibt:


Code kopieren Die Der Code lautet wie folgt:
// Format: [response, state, jqxhr], [response, state, jqxhr]
["(function(c){var e=c(" .from-search-navigate" );if(e…;if(j){g.apply(m,l)}}}})(window,document,jQuery);", "success", Object]
[Array[15], „success“, Object]

Wenn wir noch eine herkömmliche AJAX-XHR-Anfrage hinzufügen müssen, beispielsweise eine Widget-Vorlage, können wir Folgendes tun:

Code kopieren Der Code lautet wie folgt:
$.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 bietet diese Art von Funktionalität schon seit langem, aber ich bin ziemlich begeistert, dass jQuery das auch kann. Für die aktuelle Entwicklung ist es eine natürliche Voraussetzung, dass mehrere Anfragen, die nicht synchronisiert sind und deren Rückgabereihenfolge ungewiss ist, denselben Rückruf teilen, sodass jQuery definitiv mit der Zeit geht

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn