Potrzebuję uzyskać zakres stron za pomocą AJAX i umieścić je w tablicy, gdzie ich dane miejsce w tablicy jest równe i
pętli for (jest to funkcja buforująca dla stron blogów, a zakres pętli for jest całkowicie zmienny). Robię coś podobnego do następujących:Wywołanie pętli AJAX nie zwróci wartości do poprawienia pozycji tablicy
var bongo = new Array();
for (i = 0; i < 10; i++) {
jQuery.ajax({ type: "GET", url: 'http://localhost', data: queryString, success: function(request) { bongo[i] = request } })
}
Problem polega na tym, że jeśli dodam async: false
do opcji .ajax (co uczyniłoby go ... SJAX?), Co powoduje, że wnioski w zasadzie pauza przeglądarka, idąc wbrew temu, co próbuję zrobić, i w powrocie oddzwonienia zawsze kończy się na 11, podczas gdy ja oczywiście chcę, żeby wylał zwrócone dane do każdego gniazda tablicy od 0 do 10.
próbowałem zastępując Zgodnie z tym:
bongo[i] = jQuery.ajax({ type: "GET", url: 'http://localhost', data: queryString }).responseText
Ale to nie miało znaczenia.
Działa jak urok. Ale nie dostałem tego, co finał (i), czy ktoś mógłby to wyjaśnić? –
wartość zewnętrznego i zostaje przekazana do owijania samoczynnego wykonywania anonimowej funkcji; lokalizacja tej unikalnej wartości zostaje przechwycona przez asynchroniczne wywołanie zwrotne. W ten sposób każdy asynchroniczny dostaje swoją własną wartość, określoną w momencie wywołania funkcji samoutwierania. To jest koniec zamknięcia !! ;) – Plastic