Situazione:
Sto usando un POST $ .ajax() per inviare una richiesta a uno script php che inserisce circa 400.000-500.000 linee in un db. Questo richiede costantemente circa 3,5 - 4 minuti. (Durante questo periodo, la richiesta è IN ATTESA).
Problema:
ho bisogno di un modo per mostrare i progressi sulla pagina. (come un %). Ho provato ad usare un $ .ajax() in un setInterval che controlla ogni 5 secondi circa, ma sembra che si accumulino e si verificano tutti quando il primo (più lungo) $ .ajax() è finito.
Domanda:
Non è $ .ajax() asincrono per impostazione predefinita? Questo non dovrebbe significare che le richieste possono essere inviate in qualsiasi ordine e in qualsiasi momento, e le risposte dovrebbero essere ricevute in qualsiasi ordine e in qualsiasi momento ?? Questo ha qualcosa a che fare con async? C'è un modo per inviare periodicamente 'semi-risposte' da una richiesta? Oppure non posso inviare e ricevere richieste/risposte mentre c'è una richiesta/risposta in sospeso? (vedi il disegno fantastico qui sotto)
Grazie in anticipo !!!
multiple requests http://kshaneb.com/reqres.png
+1 per il grafico. :) Hai preso in considerazione il chunking dei tuoi dati, ovvero invio di requet separati ogni 10k righe? –
+1 per spiegazione. hai provato con vero asincrono .. – sathish
Sono d'accordo con Zsolt sopra, Considera di dividere i tuoi dati in una richiesta più piccola che può darti una risposta più veloce, inoltre puoi calcolare% base di nessuna delle richieste completate. Anche il caricamento di dati di grandi dimensioni in una singola richiesta, anche se asincrona, si tradurrà in prestazioni più lente. –