Mysql
 sql >> Base de données >  >> RDS >> Mysql

Compte à rebours Javascript et PHP qui affiche le même pour tout le monde

On dirait que vous aurez besoin d'un COMET/Push solution qui vous permettra de surveiller les clients actifs et de leur envoyer de nouvelles données. Je ne suis pas sûr que PHP soit la meilleure solution car il existe d'autres langages de programmation qui gèrent cela de manière plus élégante.

Voir :Utiliser Comet avec PHP ?

D'autres peuvent ne pas être d'accord, mais Node.js est une excellente solution prometteuse à ce type particulier de problème. Combinez Node.js avec Socket.io et vous avez les outils de base pour implémenter exactement ce que vous décrivez.

En un mot, une application cliente enverra une requête AJAX à un serveur. Le serveur conservera alors la demande jusqu'à ce qu'il ait quelque chose à renvoyer (dans votre cas - minuterie démarrée, minuterie cochée, minuterie en pause, etc.). Dès que les données sont retournées, une autre demande sera faite et retenue par le serveur répétant ainsi le processus. Si votre serveur et votre client prennent en charge WebSockets , les connexions AJAX maintenues peuvent être évitées au profit d'une connexion WebSocket (TCP sur HTTP).

Étant donné que tout le monde n'utilise pas la dernière version de Chrome/Firefox, vous devrez probablement prendre en charge plusieurs méthodes push pour être compatible avec tous les navigateurs. Socket.io fait abstraction de la couche de communication (Comet - long polling, WebSockets, Adobe Flash Socket, Ajax multipart streaming, Forever Iframe, JSONP Polling) et choisit la meilleure technologie en fonction des capacités du navigateur du client.

Alternative

Vous pouvez également utiliser un intervalle javascript pour interroger périodiquement le serveur (via AJAX) pour voir si la minuterie a été définie. Cependant, vous pouvez submerger votre serveur de requêtes car chaque client interrogera constamment le serveur pour déterminer si le minuteur de 60 secondes a démarré.