sql >> Databasteknik >  >> RDS >> Mysql

Javascript och PHP nedräkningstimer som visar samma för alla

Det låter som att du behöver en COMET/Push lösning som gör att du kan övervaka de aktiva klienterna och skicka ny data till dem. Jag är inte säker på att PHP är den bästa lösningen för detta då det finns andra programmeringsspråk som hanterar detta mer elegant.

Se:Använder du comet med PHP?

Andra kanske inte håller med, men Node.js är en utmärkt upp och kommande lösning på just denna typ av problem. Kombinera Node.js med Socket.io och du har de grundläggande verktygen för att implementera exakt det du beskriver.

I ett nötskal, kommer en klientapplikation att skicka en AJAX-förfrågan till en server. Servern kommer sedan att hålla förfrågan tills den har något att returnera (i ditt fall - timer startad, timer tickad, timer pausad, etc.). Så snart data returneras, kommer en annan begäran att göras och lagras av servern, vilket upprepar processen. Om din server och klient stöder WebSockets , då kan hållna AJAX-anslutningar undvikas till förmån för en WebSocket-anslutning (TCP over HTTP).

Eftersom inte alla använder den senaste versionen av Chrome/Firefox, måste du förmodligen stödja flera push-metoder för att vara kompatibel med flera webbläsare. Socket.io abstraherar kommunikationslagret (Comet - lång polling, WebSockets, Adobe Flash Socket, Ajax multipart streaming, Forever Iframe, JSONP Polling) och väljer den bästa tekniken baserat på klientens webbläsarfunktioner.

Alternativ

Du kan också använda ett javascript-intervall för att regelbundet polla servern (via AJAX) för att se om timern har ställts in. Du kan dock överskölja din server med förfrågningar eftersom varje klient ständigt kommer att polla servern för att avgöra om 60 sekunders timern har startat.



  1. Metadata om PL/SQL-posttyper på paketnivå

  2. Varning:mysqli_num_rows() förväntar sig exakt 1 parameter, 2 given | mysql |mysqli

  3. Hibernate Criteria API:få n slumpmässiga rader

  4. Mitt webbhotell säger att det är något fel med PHP-kod