Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

WoOo

Dúvidas ao utilizar ob_flush()/flush() dá origem a nova questão

Mensagens Recomendadas

WoOo

Viva,

Estava aqui de volta de uma função que por vezes poderá demorar muito tempo a terminar pois faz algumas queries à bd e também alguns file_get_contents() e lembrei-me de colocar algo como um "loading" só para o utilizador mais desatento e que não repare na barra de estado do browser não se "ir embora" a pensar que houve um erro ou algo do género.

Foi quando dei uma volta pelo google e vi que algum pessoal utiliza o ob_flush()/flush() para enviar uns alertas enquanto o código está a correr. Decidi fazer algumas experiências e para testar isto coloquei um ou outro sleep(). Até que reparei que ao fim de 60 segundos me era devolvido um "Maximum execution time of 60 seconds exceeded".

Algo que seria mais um preciosismo tornou-se em 2 problemas.

Logo, gostaria de saber o que me sugerem para ter um "loading" enquanto uma determinada função ainda não está concluída. Sera ob_flush()/flush() a melhor opção? Tentei já com JS mas sem sucesso.

Em relação ao outro problema do "timeout", deixou-me algo intrigado. Será que isto acontece por ter alguns sleep() a "atrasar" o processamento, é que há tempos atrás recordo-me que tinha uma função (para fazer apenas umas rotinas de manutenção) também com um tempo de processamento mesmo muito elevado (4/5 minutos) e nunca me foi devolvido nenhum timeout.

Cumprimentos,

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scorch

Quanto ao Timeout, não será do browser? Usas o mesmo browser?

E com AJAX, ficava-te melhor. Assim podias enviar a página base e algum código JS, e depois com AJAX chamavas o que te demorasse muito tempo.


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
WoOo

Viva scorch,

Do browser não pois é o mesmo, não faço ideia o porquê de nunca me ter dado erro e agora quando testava isto e lá forcei a demorar mais dá erro aos 60 segundos.

O AJAX nesta fase do campeonato é que me iria obrigar a alterar um pouco a estrutura da aplicação daí estar a não querer ir por aí pois não se trata de nada crucial, é mesmo para enviar algum tipo de alerta ao utilizador enquanto o código não correu na totalidade.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scorch

E porque é que não imprimes o "A Carregar" no inicio da página, e quando esta estiver pronta, através de JS esconde-o. Assim não precisas do ob_flush, sleep(), etc...


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
WoOo

Já tentei algo do género, que era ter a mensagem enquanto toda a página não fosse carregada, mas só quando terminava de correr o código em php é que aparecia a mensagem e logo de seguida desaparecia a mensagem pois a página era carregada de imediato.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
scorch

E imprimias a mensagem antes de ele começar a processar?


scorch_pp.png

PS: Não respondo a perguntas por mensagem que podem ser respondidas no fórum.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.