2011-01-07 2 views
9

Sto cercando di implementare un sistema di votazione in diretta su my website. Il sito web offre uno streaming live e mi piacerebbe poter chiedere agli spettatori di selezionare una risposta durante un voto avviato dal mago. Posso capire come memorizzare i dati in un database mySQL e come elaborare le risposte. Tuttavia:Implementazione di un sistema di votazione in diretta

Come iniziare inizialmente il voto sul lato client e visualizzarlo? Se uno script dovesse essere eseguito ogni pochi secondi sulla pagina, controllando un'altra pagina per vedere se una domanda è disponibile per l'utente?

Esistono esempi di sistemi di polling in tempo reale come quello che sto cercando di implementare?

risposta

4

È necessario interrogare il server per una nuova domanda ogni pochi secondi.

L'alternativa è mantenere la connessione aperta finché il server non invia più dati o scade, il che riduce (ma non elimina) i colpi del server. Penso che sia chiamato "polling lungo". http://en.wikipedia.org/wiki/Push_technology

1

Si potrebbe utilizzare setTimeout in JavaScript per fare richieste AJAX ogni pochi secondi per verificare se ci sono nuove domande.

Sì, polling lungo potrebbe essere migliore, ma sono sicuro che è un po 'più complesso. Quindi se sei all'altezza del lavoro, vai avanti e usalo!

Ecco un po 'più di informazioni sul tema: http://www.webdevelopmentbits.com/avoiding-long-polling

+0

Non è * via * più complesso, basta non inviare la risposta per un po '. Vedi http://stackoverflow.com/questions/333664/simple-long-polling-example-code. –

+0

bene allora, un po 'più complesso. PS: C'è un esempio di codice di polling lungo nel sito web che ho postato. – JCOC611

1

Si dovrà provenire la connessione dal lato client. La soluzione più semplice è fare in modo che la pagina effettui una richiesta AJAX al secondo circa. Le pagine Web non devono essere restituite immediatamente (possono richiedere 30 secondi o più prima di rispondere senza il timeout della connessione). Questo, aprendo una connessione che non risponde finché non ha qualcosa da dire, è "long-polling".