Pergunta

Esta questão é uma continuação ao meu anterior: perguntas anteriores .

Então, eu configurei minha página para iniciar uma chamada ajax para iniciar o processamento de alguns registros. E depois de cada registro que atualiza uma linha em outra tabela para acompanhar o status desse processo. Após essa primeira chamada ajax é feito, tenho outra arranque. É um Ajax.PeriodicalUpdater e é ajustado para bater um arquivo que simplesmente consultas que linha no db e retorna o status do processo original.

Então, isso funciona perfeitamente bem ... contanto que o arquivo que fornece as atualizações de status está fora do meu aplicativo atual. Se eu colocar o interior de arquivos do meu aplicativo, então ele não funciona direito. Se eu assistir firebug, a chamada PeriodicalUpdater não recebe nada de volta até a conclusão da chamada Ajax originais, ele apenas sai por isso é como se o arquivo estiver travado e não retornando nada.

Este aplicativo inteiro está sendo executado dentro apenas uma estrutura básica que estamos usando. Nada louco, apenas alças de roteamento, e aspectos básicos do modelo etc ... Então, todas essas funções / arquivos estão dentro deste aplicativo e todas essas chamadas ajax estão sendo encaminhadas através deste.

O que poderia estar causando algo assim?

Foi útil?

Solução

isso pode ser devido ao limite de conexões simultâneas suportado por uma navegador para um domínio particular?

Outras dicas

Isto é causado por PHP serialização sessão. Os dados da sessão está bloqueado até que o processo PHP para cada solicitação tem a escrita acabado para ele, então mais pedidos na mesma sessão irá fila até que o bloqueio seja liberado.

Se suas solicitações de AJAX precisam ter acesso a estado da sessão, leia as informações que você precisa e, em seguida, usar session_write_close() tão cedo em seu código possível para liberar esses bloqueios.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top