
Originariamente inviata da
cavicchiandrea
Vediamo la pagina online d'esempio operazioni complesse con solo stralci di codice è molto difficile fare ipotesi. Monitorizzi il processo con firebug?
Non ho una pagina online, sto lavorando con un server locale. Non monitorizzo con firebug (sono andato a vedere cosa fosse :P Non sono a questi livelli, sono principiante ehehhe).
Alla fine il dubbio principale è se async: false si può sempre evitare.
Dal manuale:
codice:
As of jQuery 1.8, the use of async: false with jqXHR ($.Deferred) is deprecated; you must use the success/error/complete callback options instead of the corresponding methods of the jqXHR object such as jqXHR.done() or the deprecated jqXHR.success().
In breve lo schema è questo:
codice:
$.ajax ({
success: function (data) {
scope.parents('.div').find(".menu1").val(data);
scope.parents('.div').find(".menu2").val(data);
$('.test').trigger("change"); /*trigger - simula il cambiamento di stato dei due menu'. Provoca una funzione ajax asincrona (1) che a partire dai valori dei due menu' precedenti genera il terzo menu'*/
var x = scope.parents('.div').find(".menu3").val();
alert (x); //Esegue l'alert prima che il terzo menù sia generato perché il metodo ajax (1) è asincrono.
}
});
Ho bisogno che il trigger e la funzione ajax ad esso collegata vengano eseguiti prima del recupero del valore del terzo menù e dell'alert.