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'

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top