如何动态解析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秒后附加整个输出。
有没有让它像现场回应一样工作?
答案 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请求。