2016-06-17 4 views
0

ich mehr GET-Anfragen senden muß, und ich brauche, um sicherzustellen, dass Jquery für den Antrag auf finnisch warten, bevor er zu den nächsten Anfragen weitergehen ...JQuery sicherzustellen, dass bekommen Anfragen in chronologischer Reihenfolge bleiben

wenn ich gehe einfach

$.get("url 1 here", { parameter:"value"}... 
$.get("url 2 here", { parameter:"value"}... 
$.get("url 3 here", { parameter:"value"}... 

Wird jQuery für die erste Anfrage auf finnisch warten, bevor er die nächste sendet, oder sollte ich so etwas wie:

$.get("url 1 here", { parameter:"value"}, function(data){ 
$.get("url 2 here", { parameter:"value"}, function(data){ 
$.get("url 3 here", { parameter:"value"}); 
}); 
}); 

, um sicherzustellen, dass sie immer Finnis h bevor der nächste gesendet wird? Vielen Dank.

+0

Sie müssen es auf die zweite Weise tun. – Barmar

+0

Die Art von '$ .get()' (und allen Ajax-Methoden) besteht darin, dass sie nicht auf eine Antwort warten sollen, bevor sie mit dem nächsten Code fortfahren. Also ja, der zweite Weg. – nnnnnn

Antwort

0

JQuerys AJAX-Methoden sind standardmäßig asynchron, können jedoch geändert werden. Sie können tun, was Sie selbst beschrieben haben, wenn Sie die asynchrone Natur beibehalten möchten (was bedeutet, dass das Skript nach Ihren Ajax-Aufrufen fortgesetzt wird), oder Sie können es so ändern, dass es nicht asynchron ist.

Wenn Sie das wollen, müssen Sie von der Get zu der Ajax-Funktion wechseln.

$.ajax({ 
    url: 'url1', 
    async: false, 
    data { parameter: 'value' }, 
    success: function(result) { } 
}); 

$.ajax({ 
    url: 'url2', 
    async: false, 
    data { parameter: 'value' }, 
    success: function(result) { } 
}); 

$.ajax({ 
    url: 'url3', 
    async: false, 
    data { parameter: 'value' }, 
    success: function(result) { } 
}); 

Beachten Sie hier den Parameter "async", der auf false gesetzt ist.

+0

Bitte empfehlen Sie niemals, 'async: false' einzustellen. Dies blockiert die gesamte Benutzeroberfläche, während sie ausgeführt wird * und * wird abgeschrieben und verschwindet möglicherweise aus neuen Browsern. –

Verwandte Themen