1

如何动态解析 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 秒后附加整个输出。

有没有办法让它像现场响应一样工作?

4

2 回答 2

1

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

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

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

<?php

    echo 'hello';
    ob_flush();
    flush();
    sleep (5);
    echo 'world';
于 2013-08-29T15:21:06.693 回答
0

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

于 2013-08-29T15:19:51.493 回答