So che questa è una vecchia questione, ma ci siamo imbattuti su di esso, e nel modo di fare le cose StackOverflow ho pensato che avrei potuto migliorarlo. Potresti prendere in considerazione una soluzione simile a what's described here che è nota come polling lungo. O un'altra soluzione è WebSockets (una delle migliori implementazioni di websocket con l'obiettivo primario di lavorare su tutti i browser) socket.io.
La prima soluzione viene sostanzialmente riepilogata quando si invia una singola richiesta AJAX e si attende una risposta prima di inviarne un'altra, quindi una volta inviata la risposta, accodare la query successiva.
Nel frattempo, sul backend non si restituisce una risposta finché lo stato non cambia. Quindi, nel tuo scenario, dovresti utilizzare un ciclo while che continuerà fino a quando lo stato non cambierà, quindi restituirai lo stato modificato alla pagina. Mi piace davvero questa soluzione. Come indica la risposta sopra riportata, questo è ciò che Facebook fa (o almeno ha fatto in passato).
socket.io è fondamentalmente il jQuery di Websockets, in modo tale che qualsiasi browser in cui si trovano gli utenti sia in grado di stabilire una connessione socket in grado di inviare dati alla pagina (senza eseguire il polling). Questo è più vicino alle notifiche istantanee di Blackberry, che - se stai per un istante, è la soluzione migliore.
userei 'setTimeout' e sempre chiamarlo quando è stata ricevuta la risposta precedente. In tal modo si evita la congestione o l'impilamento delle funzioni o qualsiasi altra cosa si voglia chiamare. –
L'ho fatto proprio come ha detto @FelixKling e funziona come un fascino. Provalo! – Alfabravo
Fantastico! Posso @FelixKling, potresti postare la risposta come risposta e accetterò? – Sologoub