Sto creando un widget per argomenti rotanti. La funzionalità è la seguente:
- Ogni argomento viene visualizzato uno alla volta sulla home page e ha una durata di 30 secondi.
- Nella pagina viene visualizzato un timer per il conto alla rovescia. Quando raggiunge lo zero, l'argomento corrente viene contrassegnato come "mostrato" e viene visualizzato l'argomento successivo.
- Gli utenti possono scegliere argomenti "mi piace", nel qual caso l'argomento ottiene una durata aggiuntiva di 5 secondi (il timer del conto alla rovescia deve aggiornarsi da solo a questo punto).
- Il conto alla rovescia del conto alla rovescia deve sempre visualizzare la durata allocata attuale per l'argomento, quindi ad esempio se un utente "piace" un argomento, le persone che accedono al sito dovrebbero vedere immediatamente la durata aggiornata per quell'argomento. Fondamentalmente tutto deve essere mostrato in "tempo reale". Gli argomenti sono memorizzati in un database MySQL. Ho problemi con gli ultimi due punti sopra.
Il modo in cui ho provato a farlo finora è avere una richiesta AJAX che viene inviata ogni secondo a dedurre 1 secondo dalla durata dell'argomento corrente. La risposta alla richiesta è la durata corrente dell'argomento.
Il problema con questo è che funzionerà solo fino a quando qualcuno sta accedendo al sito. So che probabilmente posso creare uno script CRON per eseguire questo processo in background, ma farlo funzionare ogni secondo sarebbe un po 'folle. Ci deve essere una soluzione molto più semplice a questo problema. Quale sarebbe il modo più efficace per farlo?