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

时间:2009-07-29 09:52:40

标签: php compilation

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

问题是我似乎只是获得了最后的状态。 我认为这只是因为事情发生得太快,所以我在调用sleep后运行了new Status。这延迟了页面的整个输出,这意味着PHP在完成代码运行之前不会输出任何文本。 PHP是否仅在完成所有代码的运行后才回显数据,还是逐行实时地进行数据回传? 如果是这样,任何人都可以提供任何解决方法,以便我能实现我想要的目标吗?

感谢。

1 个答案:

答案 0 :(得分:1)

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