我正在使用PHP和AJAX请求来获取始终运行的程序的输出,并以5秒的间隔将其打印在网页上。有时,此日志文件的大小最多可达2mb。如果用户已经获得了至少一次完整内容,那么AJAX请求每5秒获取一次该文件的全部内容对我来说似乎不太合适。请求只需要获取用户在之前的请求中没有得到的任何内容。
问题是,我不知道从哪里开始查找用户未收到的内容。任何提示,技巧或建议?
编辑:程序的输出以时间(HH:MM:SS AM / PM)开始,之后的所有内容都没有模式。日志文件可能会持续数天,因此文件中可能不会只有一个“02:00:00 PM”。我没有编写正在记录的程序,因此我无法修改打印输出的格式。
答案 0 :(得分:2)
我认为使用头部请求可能会让您沿着正确的道路前进。
检查这个帖子: HTTP HEAD Request in Javascript/Ajax?
如果你正在使用jquery,那么在ajax调用中这是一个简单的类型更改:
$。ajax({url:“some url”,type:“HEAD”.....});
个人而言,我会查看文件大小&根据上一个响应修改日期,如果已更新,则获取新数据。我不确定你是否只能通过ajax获取文件的一部分,但我确信这可以很容易地通过php完成,可能这个帖子可能会有所帮助:答案 1 :(得分:0)
这取决于您的程序是如何制作的以及它如何打印您的数据,但您可以使用时间戳来减少数据量。如果你有某种ID,你应该在时间戳的过程中使用它们。