Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Pausa no setinterval

Baseado neste curso estou implementando um sistema de chat com php e javascript.

Porém o setinterval, sendo executado a cada segundo está travando o meu brouwer, creio que esteja sobrecarregando o meu servidor apache. Existe alguma forma de pausar o setinverval enquanto não existe nenhum novo dado no banco de dados e ele só ser ativo quando um novo dado chegar em minha tabela no banco de dados? Obrigado

4 respostas
solução!

Para fazer isso você precisa de uma solução que envolva push notification. É o servidor que notificará seu browser e não o browser que ficará de tempo em tempos buscando o servidor. Porém, é uma solução que não envolve apenas JavaScript, envolve em um overhaul do seu servidor.

Para saber mais sobre você pode verificar uma pergunta semelhante feita no stackoverflow. A resposta passa uma série de links que podem prepará-lo para entender mais o assunto:

https://stackoverflow.com/questions/9106516/push-notifications-from-server-to-user-with-php-javascript

obs: ficar executando um código a cada segundo não é exagero não? Se não quiser partir para uma solução de push notification aumente o tempo do longo pooling que você esta fazendo.

obs: se você quer fazer chat, pode usar websocket ou a biblioteca que esconde a complexidade do websocket e garante a compatibilidade dele entre navegadores, o Socket.io. Ela envolve a biblioteca no client e uma biblioteca no servidor específico da sua plataforma. Acredito que esse seja o caminho mais indicado.

Sucesso e bom estudo meu aluno.

Obrigado professor, vou pesquisar os links que me enviou!

Vagner, parece ser o caso de implementar um service workers com listen.

O Alberto Souza, fala de uma abordagem bem parecida com o que estás precisando no curso de Node.js aqui da alura

Segue o link: https://cursos.alura.com.br/course/node-js/task/12886

Valeu Hnerique, vou ver o curso...