Scenario
Per inviare notifiche istantanee al client, sto inviando una richiesta AJAX a una pagina PHP che controlla se ci sono nuove notifiche: se ce ne sono, le emette, altrimenti si addormenta per 10 secondi prima di riprovare, quindi ha una struttura di base simile alla seguente.
<?php
$max_attempts = 10000;
for($i=0;$i<=$max_attempts;$i++){
check_new_notifications(); //checking notifications in an sql database
if(new_notification){
echo $notification;
break;
}
else{
sleep(10);
}
}
?>
Cosa manca
Anche se questo è ottimo per il client, poiché non deve inviare una richiesta ogni 10 secondi, ma solo uno, non riesco a trovare un modo migliore per il server che controllare ogni 10 secondi se ci sono nuovi notifiche.
La mia domanda
Quale soluzione posso adottare per evitare che il server controlli costantemente le nuove notifiche?