Ajax używa wywołań zwrotnych, ponieważ jest to synchronizacja A
.jak zablokować wywołanie ajax (chcę to zablokować)
Chcę moje wezwanie do zdalnego bloku URL dopóki jest jakaś odpowiedź, dokładnie tak, jak w Ajax, ale bez asynchronicznego części, lub powiem Chcę nawiązać połączenie JAX.
Czy jest jakaś metoda, aby dodaje się zdarzyć (używa JQuery) (... rozwiązanie z JQuery lub czegokolwiek innego):
function get_data() {
$.ajax({
type : "POST",
url : "/foo"
}).done(function(data, textStatus, jqXHR) {
return data;
}).fail(function(jqXHR, textStatus) {
return null;
});
}
var data = get_data();
// process `data`
Zastanawiam się - chcą się uczyć.
Rzeczywiście zdarzają się sytuacje, w których blokowanie do momentu, w którym odpowiednia odpowiedź byłaby odpowiednia. Nie mówię, że chcę blokować przeglądarkę, tylko środowisko uruchomieniowe skryptu.
zapisu 'asynchroniczny: FALSE ajax z opcją – diEcho
jQuery $ .ajax ma' własności async'. Jeśli ustawisz na false, będzie blokować. – osoner
możliwy duplikat [połączeń synchronicznych z jquery] (http://stackoverflow.com/questions/2942544/synchronous-calls-w--query) - nie można blokować środowiska wykonawczego bez blokowania przeglądarki. I nie można zwrócić odpowiedzi z wywołań zwrotnych, trzeba przypisać ją do zmiennej i zwrócić ją z rzeczywistej funkcji. –