当前位置: 首页 > 知识库问答 >
问题:

在foreach循环中每次迭代之后的PHP回波

韦高格
2023-03-14

我试图在PHP中的foreach循环的每次迭代之后进行回显。回声在全部完成之前不会呈现。我试过各种帖子的建议,但没有一个奏效。我的一些代码是:

echo $epTitle . "<br>";
echo "<div>" . '<img src="' . $imgSrc . '" height="70" width="70">';
echo "<button onclick='grabVid(" . '"' . $pageUrl . '"' ..")'>Grab</button>";
flush();
flush();
ob_flush();
while (ob_get_level() > 0)
ob_end_flush();
@ini_set('zlib.output_compression', 0);
@ini_set('implicit_flush', 1);
@ob_end_clean();

有什么建议吗?谢了。

共有1个答案

公西兴业
2023-03-14

如果您正在使用XHR(AJAX)并希望将响应流化,则需要定期使用onprogress对其进行检查。在接收响应期间,onreadystatechange事件不会触发,因为readystate将始终在加载中,并且在请求完成之前不会更改。

这里有一篇关于这个主题的好文章:

解释了PHP流和输出缓冲

xhr = new XMLHttpRequest();
xhr.open("GET", "response.php", true);
xhr.onprogress = function(e) {
  alert(e.currentTarget.responseText);
}
xhr.onreadystatechange = function() {
  if (xhr.readyState == 4) {
    console.log("Complete = " + xhr.responseText);
  }
}
xhr.send();

如果您计划执行这个循环超过30秒,那么您的PHP脚本可能会被终止。您可以延长默认的时间限制,但如果您的站点有许多用户,您希望请求尽可能短,以获得最佳的服务器可用性。

这意味着重写循环,使每个迭代都是一个HTTP请求。

 类似资料:
  • 我正在做一些产生正确结果的事情。然而,从设计观点来看,这是错误的。 该程序的重点是列出一个数字的所有幂的结果,直到并包括用户定义的限制。 我有一个构造函数,它接受扫描器中的基和指数。然后是一种利用for循环计算每个指数的幂的方法。 现在,问题是我直接从这个方法打印每个循环迭代的结果。这超过了私有变量的点,它首先是无效的。 因此,我想定义一个getter方法,它将每个幂的结果返回给输出。我过去常常为

  • 我正在尝试获取一个

  • 值5=5 值6=6 值7=7 结果lopping1=6 结果lopping2=15 结果lopping3=24 我该怎么办?

  • 如果我试图在java中查找遍历foreach循环的次数,还有比这更好的方法吗? 我知道我可以只使用一个普通的for循环并拥有一个迭代器I,但我只是想知道是否有一种更优雅的方法来使用foreach.tanks in prevair:) 编辑:正如Jon Skeet指出的,上面的代码将新的按钮实例分配给迭代变量。哎呀。基于其他评论,我相信最实用的使用是一个正常循环。这是我要用的版本。谢谢大家的帮助!

  • 问题内容: 我有这样的1,2,3产品ID 我该如何在for循环回显中使用此代码设置格式,请问还有其他方法吗 问题答案: