0

假设我有一个聊天程序,每次有人发送消息时,都会锁定并写入一个全局文件。接收客户端有一个挂起的 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 回答