Ho alcune chiamate ajax (potenzialmente) di lunga durata che vorrei interrompere se l'utente naviga verso un'altra pagina. Le seguenti chiamate codice jQuery abort su tutti gli oggetti XMLHttpRequest in sospeso su di uscire dalla pagina:Il browser attende il completamento della chiamata ajax anche dopo la chiamata (jQuery)
$.ajaxSetup({
beforeSend: function(xhr) {
$(window).bind('beforeunload', function() {
xhr.abort();
});
}
});
In un banco di prova, forzo 10 secondi di attesa sul funzionamento del server-side di essere chiamato. Usando Firebug, ho confermato che il codice sopra riportato fa sì che tutte le chiamate ajax in sospeso si fermino immediatamente quando faccio clic su un collegamento qualsiasi nella pagina. Tuttavia, il browser attende ancora 10 secondi prima di passare alla pagina successiva. IE sembra mostrare lo stesso comportamento. Si tratta di un comportamento noto del browser? C'è qualcosa che posso fare consentire all'utente di allontanarsi dalla pagina immediatamente in questa situazione? Grazie in anticipo.
Che aspetto ha la chiamata Ajax? – epascarello