直播ajax内容加载

时间:2013-08-29 15:08:49

标签: php javascript jquery ajax

如何动态解析ajax向其发送请求的php文件返回的内容?

我的代码:

jQuery(function () {
    var request = jQuery.ajax({
        url: "ajax/db.php",
        type: "POST",
        data: {
            addresses: '<?php echo implode(' * ', $addresses); ?>'
        }
    });
    request.done(function (msg) {
        jQuery("#response").append(msg);
    });
    request.fail(function (jqXHR, textStatus) {
        alert("Request failed: " + textStatus);
    });
});

AJAX / db.php中

<?php

    echo 'hello';
    sleep (5);
    echo 'world';

我想要实现的是动态显示ajax/db.php文件响应 - 首先将hello字符串附加到#response对象中,睡眠5秒后它应附加另一段字符串 - world

此时代码只是在5秒后附加整个输出。

有没有让它像现场回应一样工作?

2 个答案:

答案 0 :(得分:1)

这是PHP服务器的工作方式。 1个请求,1个输出。

如果您想在sleep()之前和之后发送数据,可以使用ob_flush()吗?

这样的事情(对不起很久以前我用过这个,所以如果不工作就不要拍)

<?php

    echo 'hello';
    ob_flush();
    flush();
    sleep (5);
    echo 'world';

答案 1 :(得分:0)

sleep(5)停止执行PHP,因此在执行终止之前不会将任何内容返回给浏览器。 Javascript必须等待5秒钟才能恢复整个响应,就是这样。如果要将响应拆分为多个部分,则必须连续发出两个Ajax请求。