0

我正在使用 PHP 和 AJAX 请求来获取始终运行的程序的输出,并以 5 秒的间隔将其打印在网页上。有时,此日志文件的大小可达 2mb。如果用户已经至少获得了一次完整的内容,那么 AJAX 请求每 5 秒获取一次该文件的全部内容对我来说似乎是不切实际的。该请求只需要获取用户在之前的请求中没有得到的任何内容。

问题是,我不知道从哪里开始查找用户没有收到的内容。有任何提示、提示或建议吗?

编辑:程序的输出以时间开始(HH:MM:SS AM/PM),之后的所有内容都没有模式。例如,日志文件可能跨越数天,因此文件中可能不只有一个“02:00:00 PM”。我没有编写正在记录的程序,所以我无法修改它打印输出的格式。

4

2 回答 2

2

我认为使用 head 请求可能会让你走上正确的道路。

检查这个线程: Javascript/Ajax 中的 HTTP HEAD 请求?

如果您使用的是 jquery,这是 ajax 调用中的简单类型更改:

$.ajax({url: "一些 url", type: "HEAD".....});

就个人而言,我会根据之前的响应检查文件大小和修改日期,如果已更新,则获取新数据。我不确定你是否可以通过 ajax 只获取文件的一部分,但我确信这可以通过 php 很容易地完成,可能这个线程可能会有所帮助:

如何在 PHP 中只读取文本文件的最后 5 行?

于 2012-07-25T20:59:57.137 回答
0

这取决于您的程序是如何制作的以及它如何打印您的数据,但您可以使用时间戳来减少数据量。如果您有某种 ID,您可能应该在时间戳中使用它们。

于 2012-07-25T20:58:05.650 回答