使用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(),我将无法再次启动它,因为已经发送了头!有什么帮助吗?