2013-07-18 13 views
6

so come aspettare che ajax si completi, ma se ho intenzione di reindirizzare una pagina dopo che alcune chiamate ajax sono state disattivate, dovrei aspettare che vengano completate prima del reindirizzamento? Importa?Devo aspettare che ajax venga completato per reindirizzare una pagina?

+5

Suppongo che ciò dipenda se è necessario eseguire un trattamento errato del codice di stato restituito dalla chiamata ajax. Se reindirizzate prima che finisca, come sapreste che è passato correttamente? – JanR

risposta

5

Se si è certi che la chiamata ajax avrà esito positivo, una volta eseguita la chiamata ajax, il reindirizzamento non influirà sul server. Ma non dimenticare che il client potrebbe perdere la connessione o che potrebbero verificarsi numerosi errori, quindi probabilmente dovresti attendere per assicurarti che le chiamate abbiano avuto successo. Un'altra cosa da considerare è se le tue chiamate ajax influenzeranno la pagina a cui stai andando a reindirizzare. In tal caso, DEFINITAMENTE attendere prima di reindirizzare. Non vorrai che il tuo utente venga reindirizzato a una pagina rotta perché la loro connessione è lenta o il tuo server ha avuto un incidente.

+0

Vero vero. Ad esempio, una chiamata ajax che conteggia le visualizzazioni di pagina può essere licenziata da un dimenticato. – Lix

+1

Ajax è un buon modo per contare le visualizzazioni di pagina? Non conteggia gli utenti con JS disattivato. –

+0

Solo il 2% degli utenti ha disattivato JavaScript: http://stackoverflow.com/questions/9478737/browser-statistics-on-javascript-disabled. Quindi in realtà dipende da quanto vuoi essere preciso ... Di solito ignoro quelle persone personalmente. – adavea

1

Si consiglia di attendere e gestire possibili errori che potrebbero verificarsi.

È possibile ottenere una connessione sicura, individuando errori, software migliore, eseguendo l'intero processo in modo sincrono, rendendo il reindirizzamento in arrivo.

Potresti spendere 0,1 secondi in più di esecuzione ma a chi importa?

+0

Non è vero, il processo che voglio fare da ajax è qualcosa che va per 20 secondi. Quindi importa. – vaso123

+0

Da un po 'di tempo da quando ho fatto questo commento. Quello che avrei dovuto essere chiaro e che fondamentalmente implicava la stessa cosa della risposta accettata, è che se si può assolutamente garantire che l'esecuzione avrà successo, allora si può reindirizzare, ma c'è una possibilità che la connessione semplicemente perdersi o si presenterà un'eccezione che vorrete essere in grado di gestire. – Jonast92

1

Direi che l'Ajax seguito da un reindirizzamento non è un buon caso di utilizzo per Ajax. Invece raccomanderei di fare una richiesta regolare del server e quindi di occuparmi di tutte le operazioni sul server prima di reindirizzare alla destinazione finale.

Ciò consentirà uno schema più semplice e molto meno traffico di rete. Si consiglia di utilizzare Ajax nei casi in cui si desidera evitare di ricaricare la pagina. Tuttavia, nel tuo scenario, stai pianificando di lasciare la pagina non appena le operazioni sono state completate, quindi perché non evitare il back and avanti che Ajax ti darà.

Problemi correlati