在显示输出之前,ajax是否必须等待PHP脚本完成

时间:2017-08-02 11:26:20

标签: php jquery ajax

我使用ajax运行一个简单的PHP脚本来回显数字。测试ajax是否会在发生时显示每个echo,或者它是否在显示任何内容之前等待整个脚本完成。

<?php 
    echo '1';
    sleep(5);
    echo '2';
    sleep(5);
    echo '3';
    sleep(5);
    echo '4';
    sleep(5);
    echo '5';
?>

这告诉我它在显示数字之前等待整个脚本完成。

我想知道是否有可能在发生时输出每个回声,类似于你在shell中看到它的方式?

3 个答案:

答案 0 :(得分:0)

不可能,因为PHP脚本必须运行并在将其提供给AJAX请求之前返回它的输出。

答案 1 :(得分:0)

不可能等待实际结果。但您可以使用websockets来实现此行为。

例如,您可以使用php库Ratchet或使用javascript(或其他语言)作为服务器。

答案 2 :(得分:0)

关于如何实现所需的方法,有许多不同的方法,技术和软件。

以下是一个基本而简单的示例:https://github.com/panique/php-long-polling

它基于长轮询技术。

但我建议你在大型项目中使用带有sockJs库的离心机。