使用php/ajax向用户显示准实时数据

使用php/ajax向用户显示准实时数据,php,compilation,Php,Compilation,我目前有一个类Status,我在执行各种任务时在代码中调用它,例如,当我上传图像时,我调用$statusHandler=newstatus(121),当我调整它的大小时,我调用$statusHandler=newstatus(122)。 每个statusID对应于数据库中存储的特定文本。 类状态检索文本,并存储在$\u会话中。 我还有另一个文件,getstatus.php,它返回当前状态。 我的想法是使用ajax(通过jquery)每隔500毫秒调用getstatus.php,并将文本附加到网页

我目前有一个类
Status
,我在执行各种任务时在代码中调用它,例如,当我上传图像时,我调用
$statusHandler=newstatus(121)
,当我调整它的大小时,我调用
$statusHandler=newstatus(122)
。 每个statusID对应于数据库中存储的特定文本。 类
状态
检索文本,并存储在
$\u会话中
。 我还有另一个文件,
getstatus.php
,它返回当前状态。 我的想法是使用ajax(通过jquery)每隔500毫秒调用
getstatus.php
,并将文本附加到网页上。 通过这种方式,用户可以(几乎)获得有关后台正在进行的计算的实时数据

问题是我似乎只得到了最后的状态。 我认为这只是事情发生得太快的结果,所以在调用
newstatus
之后,我运行了
sleep
。这会延迟页面的整个输出,这意味着PHP在完成代码运行之前不会输出任何文本。 PHP是在完成所有代码的运行后才回显数据,还是实时地逐行回显数据? 如果是这样的话,有谁能提供一些变通办法,让我实现我想要的


谢谢。

当调用session_start()时,默认会话实现(平面文件)会在会话文件上设置文件锁定。直到会话机制关闭,即脚本结束或执行时,才会释放此锁。另一个要访问同一会话的请求/线程必须等待此锁被释放。

如果我写入会话\u write\u close(),我将无法再次启动它,因为已经发送了头!有什么帮助吗?