Domanda

Questa domanda fa seguito al mio precedente: Domande precedenti .

Quindi ho impostato la mia pagina per iniziare una chiamata Ajax per iniziare l'elaborazione di alcuni record. E dopo ogni record aggiorna una riga in un'altra tabella per tenere traccia dello stato di questo processo. Dopo quella prima chiamata ajax, ho un altro avvio. È un Ajax.PeriodicalUpdater ed è impostato per colpire un file che richiede semplicemente quella riga nel db e restituisce lo stato del processo originale.

Quindi funziona perfettamente ... purché il file che fornisce gli aggiornamenti di stato sia esterno alla mia app corrente. Se inserisco il file all'interno della mia app, non funziona correttamente. Se guardo firebug, la chiamata PeriodicalUpdater non recupera nulla fino al termine della chiamata ajax originale, si blocca in modo che sia come se il file fosse bloccato e non restituisse nulla.

L'intera app è in esecuzione solo all'interno di un framework di base che stiamo utilizzando. Niente di pazzo, gestisce solo il routing e gli aspetti di base del modello, ecc ... Quindi tutte queste funzioni / file si trovano all'interno di questa app e tutte queste chiamate ajax vengono instradate attraverso questo.

Cosa potrebbe causare qualcosa del genere?

È stato utile?

Soluzione

Può essere dovuto al limite di connessioni simultanee supportate da un browser a un dominio particolare?

Altri suggerimenti

Ciò è causato dalla serializzazione della sessione PHP. I dati della sessione vengono bloccati fino a quando il processo PHP per ogni richiesta non ha finito di scrivergli, quindi ulteriori richieste nella stessa sessione verranno messe in coda fino al rilascio del blocco.

Se le tue richieste AJAX necessitano dell'accesso allo stato della sessione, leggi le informazioni che ti servono e quindi usa session_write_close () il prima possibile nel tuo codice per rilasciare quei blocchi.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top