ciao,
in questo caso dovresti avere una funzione chiamataAjax() che effettua la chiamata Ajax1) ogni 1000ms chiamata ajax per eseguire query in db
lanciata da una linea :
var intervallo=setTimeout(chiamataAjax,1000)
e la chiamata contdown() che gestirà il contdown iniziale a video.
in questo caso dovrai avere un'altra funzione che gestisce il risultato della chiamata ajax chiamiamola risultatoAjax().2) se ajax ritorna un risultato, la funziona countdown() viene chiamata
Tu non puoi sapere quando il server risponde, visto che la chiamata è asincrona, quindi la chiamata ajax non deve ripetersi fino a quando il server non risponde e non hai il nuovo risultato.
Infatti c'è un problema, se tu reimposti dentro questa funzione (chiamataAjax) un nuovo intervallo di chiamata alla chiamata chiamataAjax stessa, la funzione, in teoria, potrebbe essere rilanciata prima che il server risponda, quindi devi aspettare che il server ti risponda e poi impostare il nuovo intervallo a chiamataAjax, dentro la funzione risultatoAjax, solo quando il server ti ha risposto, partendo ovviamente dal presupposto che il server ti risponda sempre, prima o poi.
Ok, quando il server ti risponde la funzione risultatoAjax() imposterà il nuovo contdown passandogli il parametro e imposterà un nuovo intervallo della chiamataAjax3) ognivolta che la funzione countdown viene chiamata, il countdown viene resettato a partire dal nuovo valore ricevuto da ajax (passato alla funzione countdown) MA le chiamate ajax (punto 1) devono continuare in background indipendentemente dal nuovo timer
E cosa deve succedere se non ti restituisce un nuovo risultato?