sql >> Database teknologi >  >> RDS >> Mysql

Javascript og PHP nedtællingstimer, der viser det samme for alle

Det lyder som om du skal bruge en COMET/Push løsning, der giver dig mulighed for at overvåge de aktive klienter og skubbe nye data til dem. Jeg er ikke sikker på, at PHP er den bedste løsning til dette, da der er andre programmeringssprog, der håndterer dette mere elegant.

Se:Bruger du comet med PHP?

Andre kan være uenige, men Node.js er en fremragende up and coming løsning på denne særlige type problem. Kombiner Node.js med Socket.io og du har de grundlæggende værktøjer til at implementere præcis det, du beskriver.

I en nøddeskal vil en klientapplikation sende en AJAX-anmodning til en server. Serveren vil derefter tilbageholde anmodningen, indtil den har noget at returnere (i dit tilfælde - timeren er startet, timeren tikker, timeren er sat på pause osv.). Så snart data er returneret, vil en anden anmodning blive foretaget og tilbageholdt af serveren, hvilket gentager processen. Hvis din server og klient understøtter WebSockets , så kan holdte AJAX-forbindelser undgås til fordel for en WebSocket-forbindelse (TCP over HTTP).

Fordi ikke alle bruger den nyeste version af Chrome/Firefox, bliver du sandsynligvis nødt til at understøtte flere push-metoder for at være kompatible på tværs af browsere. Socket.io abstraherer kommunikationslaget (Comet - lang polling, WebSockets, Adobe Flash Socket, Ajax multipart streaming, Forever Iframe, JSONP Polling) og vælger den bedste teknologi baseret på klientens browserfunktioner.

Alternativ

Du kan også bruge et javascript-interval til periodisk at polle serveren (via AJAX) for at se, om timeren er blevet indstillet. Du kan dog oversvømme din server med anmodninger, da hver klient konstant vil polle serveren for at afgøre, om 60 sekunders timeren er startet.



  1. PDO vs pg_* funktioner

  2. PostgreSQL:Hvordan indstiller jeg søgestien på brugerniveau?

  3. Hvordan sletter man en række poster på én gang på MySQL?

  4. MySQL ækvivalent med ORACLES rank()