0

誰かがメッセージを送信するたびに、globalfile がロックされて書き込まれるチャット プログラムがあるとします。受信クライアントには保留中の xmlhttp リクエストがあり、次の構造を使用して新しく更新されたファイルが返されるのを待っています。

while (!hasNewdata())
{    sleep 3;    }
print "$thenewdata";
sub hasNewData()
{
     # determine if global file has been appended to.
}

ファイル サイズをクライアントに送信し、次のポーリング リクエストでサーバーに戻すことは、これを行う良い方法でしょうか。新しいデータがあることを知っています。または、ファイルのオフセットを前後に送信する方が、ファイル内のどこで新しいデータをチェックするかがわかるので、より良いアプローチでしょうか? または、グローバルな「チャット」ファイルを使用する以外の、まったく別の方法ですか?

「利用可能な新しいデータ」を決定する一般的な方法は何ですか

4

2 に答える 2

5

変更された日付を使用できます。

$last_modified = filemtime("thisfile.php");
于 2009-12-02T19:41:55.040 に答える
0

ファイルサイズはそれほど悪い方法ではありません。

ブラウザーは、既に "if-modified-since" ヘッダーをリクエストにタグ付けしている可能性があります。

于 2009-12-02T19:44:41.163 に答える