0

在我的 php 主页中,我有一个包含大约 10 到 60 个字段的表单。当我将其提交到“process.php”页面时,它将一一处理每个字段并输出结果。但这将输出整个结果。我想要做的是,使用 ajax 提交数据并一一收集输出并将其一一显示给用户。

我已经阅读了 jquery get、post 和 ajax 方法。但是我如何从 php 页面中逐一回显输出,并且每个都由 ajax 收集并一一显示给用户?

我知道我可以一个一个地进行 ajax 调用(发送一个字段并获得响应,然后将其显示给用户并发送下一个字段,依此类推)。但我不想那样做。我想一键发送所有字段并一一显示输出。

此 process.php 使用 API(使用 curl)。所以可能需要几秒钟的延迟。

可能吗 ?

更多细节:

$fields = $_POST['flds'];
foreach($fields as $f)
{
  // do cURL operation - API

  // print output
}

所以输出将是:

output of field1
.....
output of field2
.....
output of field3
.....
etc..

即,首先它将显示:

output of field1

几秒钟后:

output of field1
output of field2

就像这样。我不想发送一个字段并获得输出,然后是第二个字段,然后是输出,等等。但我想发送整个字段并一个接一个地获得输出。

可能吗 ?

类似:flush() 在 PHP 中不显示输出?

我尝试测试的内容:

<?php
@apache_setenv('no-gzip', 1);
@ini_set('zlib.output_compression', 0);

$i = 10;
while($i>0)
{
    echo $i . '<br />';
    flush();
    sleep(1);
    $i--;
}
?>

但不工作。页面看起来像是加载了几秒钟,最后输出了整个数字。

问这个问题的原因是,这个 api 一次执行需要 4-11 秒或更长时间!所以超过 50 个字段大约需要 10 分钟。即使延长脚本用户的最大执行时间也必须等待该空白屏幕这么长时间!

4

0 回答 0