Sulla mia applicazione quando l'utente richiede un report a jQuery AJAX (utilizzando .load()
) viene effettuata una chiamata a un file che esegue molte richieste di crunch numerico e mySQL. in genere sono necessari 5-6 secondi per caricare e .ajaxStart()
e .ajaxStop()
vengono utilizzati per visualizzare una gif di caricamento durante il caricamento.La richiesta AJAX annullata rallenta la navigazione successiva
Il problema:
Se un utente fa clic sul pulsante 'generare il rapporto' e poi cambia idea e cerca di passare a un'altra pagina l'applicazione si blocca, e non passare alla nuova pagina per 5-6 secondi. Posso dire dalla rimozione della gif di caricamento che .ajaxStop()
si attiva immediatamente quando si tenta di accedere a una nuova pagina, ma sembra che la richiesta di ajax sta terminando prima che il browser carichi la pagina successiva.
È normale? Qualche suggerimento su come risolvere/ristrutturare questo?
Ho solo pensato di commentare e dirvi che non siete soli! Sto avendo questo problema esatto. Dall'ispettore di Chrome e da Firebug, il browser ha annullato le richieste di rete in sospeso effettuate utilizzando AJAX e ha solo la "nuova" richiesta per la pagina successiva come "in sospeso". Tuttavia sembra ancora che si blocchi per ben 5-10 secondi prima che scelga effettivamente di allontanarsi. –
Lo stesso qui: il browser ritarda sempre fino al completamento della richiesta Ajax esistente. Anche se la risposta non è più necessaria. – CoreyOConnor
Stai utilizzando librerie che aggiungono credenziali OpenID tramite una richiesta interdominio? – CoreyOConnor