polling lungo - quali sono i metodi per determinare quando si dispone di nuovi dati?
-
11-09-2019 - |
Domanda
Diciamo che ho un programma di chat che ogni volta che qualcuno invia un messaggio, un globalfile è bloccato e scritto. Il cliente che riceve ha una richiesta XMLHTTP in sospeso che è in attesa di tornare con il file appena aggiornato con questo costrutto:
while (!hasNewdata())
{ sleep 3; }
print "$thenewdata";
sub hasNewData()
{
# determine if global file has been appended to.
}
Sarebbe inviare la dimensione del file al cliente e poi di nuovo il server nella successiva richiesta di pool essere un buon metodo di fare questo, come si può ora controllare se la dimensione del file è diverso da ciò che è già stato rispedito al client in modo sappiamo che ci sono nuovi dati. O che l'invio del file di offset avanti e indietro essere un approccio migliore in modo da sapere dove nel file per verificare la presenza di nuovi dati? O un metodo diverso completamente, qualcosa di diverso da utilizzando un file globale 'chat'?
Quali sono i metodi generali di determinazione 'nuovi dati disponibili'
Soluzione
È possibile utilizzare il data di modifica.
$last_modified = filemtime("thisfile.php");
Altri suggerimenti
La dimensione del file non è un modo così cattivo.
I browser potrebbero benissimo essere già Tagging "se-Modified-Since" headers alle richieste.