Ho riscontrato alcuni problemi con la funzione di errore ajax che viene richiamata mentre lo script impiega un po 'di tempo a caricarsi. Ma sono stato in grado di risolverlo aggiungendo async: false
.
es:
$.ajax({
type: 'POST',
url: REQUEST_URL,
async: false,
data: {
'id': id
},
dataType: 'json',
success: function(output) {
// success
},
error: function() {
alert('Error, please refresh the page');
}
});
Quando si leggono i documenti si dice:
Per impostazione predefinita, tutte le richieste vengono inviate in modo asincrono (vale a dire questo è impostato su true per impostazione predefinita). Se hai bisogno di richieste sincrone, imposta questa opzione su false. Richieste tra domini e dataType: le richieste "jsonp" non supportano l'operazione sincrona di supporto . Si noti che le richieste sincrone possono bloccare temporaneamente il browser, disabilitando tutte le azioni mentre è attiva la richiesta . A partire da jQuery 1.8, l'uso di async: false con jqXHR ($ .Deferred) è deprecato; è necessario utilizzare i callback completi/successi/errori .
Q) Cosa significa l'ultima parte su jqXHR ($ .Deferred)? Questo effetto ha il mio copione?
grazie, volevo solo assicurarmi che il mio codice non si rompesse in futuro jquery –