Php-ajax部分响应(如果可用)
我有一个好奇的问题,似乎没有找到正确的短语来表达我的意思,一个成功的谷歌搜索查询 一些网站(主要进行价格查询)使用用户设置的条件对某些内容(假设它是php脚本)进行ajax查询,当查询完成时,数据不会一次全部显示出来,但您会看到响应中的一些部分在较早时(我假设它们在较早时可用)和稍后显示出来 我可以想象ajax请求是对php脚本执行的,php脚本反过来查询不同的源并尽快返回数据,这意味着首先发送更快的查询响应 核心问题: 如何构建php脚本可以返回数据的机制 多次,ajax脚本不只是等待响应 我相当肯定有关于这方面的信息可用,但不幸的是,我们甚至无法找到搜索它的术语 编辑: 我认为一个很好的例子是廉价机票预订服务,它查询不同的来源,并且似乎在数据可用时立即输出数据,这意味着不同航空公司的不同报价在不同的时间出现 希望有人能解除我的好奇心 最好的Php-ajax部分响应(如果可用),php,ajax,httprequest,Php,Ajax,Httprequest,我有一个好奇的问题,似乎没有找到正确的短语来表达我的意思,一个成功的谷歌搜索查询 一些网站(主要进行价格查询)使用用户设置的条件对某些内容(假设它是php脚本)进行ajax查询,当查询完成时,数据不会一次全部显示出来,但您会看到响应中的一些部分在较早时(我假设它们在较早时可用)和稍后显示出来 我可以想象ajax请求是对php脚本执行的,php脚本反过来查询不同的源并尽快返回数据,这意味着首先发送更快的查询响应 核心问题: 如何构建php脚本可以返回数据的机制 多次,ajax脚本不只是等待响应 我
Alari在客户端,您需要
onprogress
。请参见以下示例(复制自):
xhr.responseText
将不断累积服务器给出的响应。这里的缺点是xhr.responseText
包含一个累积响应。您可以在其上使用子字符串
,仅获取当前响应
在服务器端,您可以执行输出缓冲以将响应分块,例如:
<?php
header( 'Content-type: text/html; charset=utf-8' );
for($i = 0; $i < 100; $i++){
echo "Current Response is {$i} \r\n";
flush();
ob_flush();
// sleep for 2 seconds
sleep(2);
}
因此,请在此类网站上打开开发人员控制台,看看发生了什么。我已经尝试过了,整个脚本都被缩小了,我真的不知道发生了什么,甚至不知道从何处发起呼叫。谢谢您的回答,这类功能是否有名称或术语,以便我可以做进一步的研究?是的,搜索<代码>分组Ajax响应< /代码>,如果答案有所帮助,请考虑接受它:
<?php
header( 'Content-type: text/html; charset=utf-8' );
for($i = 0; $i < 100; $i++){
echo "Current Response is {$i} \r\n";
flush();
ob_flush();
// sleep for 2 seconds
sleep(2);
}