如何动态解析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秒钟后追加整个输出。
有没有办法让它像实时响应一样工作?
这就是PHP服务器的工作方式。1个请求,1个输出。
如果你想在sleep()
之前和之后发送数据,你可以使用ob_flush()吗?
像这样的东西(很抱歉很久以前我用过这个,所以如果不工作就不要拍摄)
<?php
echo 'hello';
ob_flush();
flush();
sleep (5);
echo 'world';
sleep(5)
停止PHP执行,因此在执行终止之前不会向浏览器返回任何内容。Javascript需要再等5秒才能得到整个响应,仅此而已。如果你想把响应分成多个部分,你必须依次发出两个Ajax请求。