Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Temporizador de contagem regressiva Javascript e PHP que exibe o mesmo para todos


Parece que você precisará de um COMET/Push solução que permitirá monitorar os clientes ativos e enviar novos dados para eles. Não tenho certeza de que o PHP seja a melhor solução para isso, pois existem outras linguagens de programação que lidam com isso de forma mais elegante.

Veja:Usando cometa com PHP?

Outros podem discordar, mas Node.js é uma excelente solução para esse tipo específico de problema. Combine Node.js com Socket.io e você tem as ferramentas básicas para implementar exatamente o que está descrevendo.

Em poucas palavras, um aplicativo cliente enviará uma solicitação AJAX para um servidor. O servidor então reterá a solicitação até que tenha algo para retornar (no seu caso - cronômetro iniciado, cronômetro marcado, cronômetro pausado, etc.). Assim que os dados forem retornados, outra solicitação será feita e retida pelo servidor, repetindo assim o processo. Se o seu servidor e cliente suportar WebSockets , as conexões AJAX mantidas podem ser evitadas em favor de uma conexão WebSocket (TCP sobre HTTP).

Como nem todo mundo está usando a versão mais recente do Chrome/Firefox, você provavelmente terá que oferecer suporte a vários métodos de envio para ser compatível com vários navegadores. O Socket.io abstrai a camada de comunicação (Comet - long polling, WebSockets, Adobe Flash Socket, Ajax multipart streaming, Forever Iframe, JSONP Polling) e escolhe a melhor tecnologia com base nos recursos do navegador do cliente.

Alternativa

Você também pode usar um intervalo de javascript para pesquisar periodicamente o servidor (via AJAX) para ver se o cronômetro foi definido. No entanto, você pode inundar seu servidor com solicitações, pois cada cliente estará constantemente pesquisando o servidor para determinar se o cronômetro de 60 segundos foi iniciado.