Pergunta

Eu gostaria de alguns conselhos sobre como implementar o seguinte:

Gostaria de fazer meus usuários conscientes do progresso de uma tarefa que está em execução no meu servidor via AJAX. Meu servidor executa um script PHP que os downloads de um arquivo via comando shell usando a função popen. -Lo periodicamente ecos / impressões que está acontecendo. Eu gostaria de capturar essa saída usando AJAX e apresentá-lo para o usuário.

Foi-me dito em outra pergunta que eu poderia precisar de fazer uso de polling ou cometa? Eu realmente aprecio qualquer ajuda ou orientação sobre como conseguir isso da maneira mais simples e mais eficiente. Felizmente, eu ainda pode fazer uso de JQuery.

Obrigado a todos por tomar o tempo para ler isto.

P.S. Eu era capaz de chegar até aqui com graças à comunidade stackoverflow :.)

Foi útil?

Solução

Isso soa como uma grande oportunidade para Ajax longo polling , que é uma das miríades de técnicas utilizadas em implementações gerais Comet. Há outra pergunta sobre estouro de pilha com código de exemplo.

Outras dicas

O link Jim Puls postou é um ótimo lugar para começar. Muitos usuários em que as perguntas oferecem um grande lote de informações sobre Comet polling e PHP. A maioria dos lugares que eu vi têm recomendado usando python torcido para realizar essa tarefa.

Além disso, é aqui algumas ligações para:

aplicações AJAX responsivo com COMET

uma barra de progresso em Jquery

E Outra HTTP Transmissão Ajax Padrão artigo

Eu provavelmente iria para os gs de rotas mencionadas no final dependendo de como "necessária" a barra de progresso é. Se é apenas um recurso para ajudar a perceber usuário que ele está tomando um pouco mais tempo do que normalmente para processar, em seguida, "enganando"-los com uma estimativa é muito mais fácil do que a votação ao vivo.

Eu tinha acabado de usar a checagem regular em vez de cometa, como este é mais como um hack. Para tornar a interface do usuário mais fluida você poderia fraude e atualizar sua barra de progresso sem verificar com o servidor, apenas através do cálculo do tempo médio que precisa fazer uma tarefa. Você pode corrigir o erro de votação para o estado correcto. Se você implementar esse bem, todo mundo vai pensar que é a atualização ao vivo.

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