gpt4 book ai didi

php - 是否可以在完成处理之前在 while 循环中打印 PHP?

转载 作者:行者123 更新时间:2023-12-04 18:21:32 27 4
gpt4 key购买 nike

for($x=0;$x<100000;$x++) {
echo "hello $x";
}

因此,通常情况下,它会先处理完所有内容,然后一次打印所有内容。有没有办法在发送命令时继续打印消息,这样我会看到一个新的 hello $x一个一个附加还是我必须使用 jQuery/JavaScript?

更新:

我问是因为我正在尝试运行一个长测试脚本并让它在浏览器上一一显示所有结果,这样我就不必去检查日志并且可以直观地看到颜色编码的结果。我试图做出与此类似的效果: http://tools.css3.info/selectors-test/test.html如果有人可以提供一个简短的 jQuery 示例(如果必须这样做),我将不胜感激。

最佳答案

虽然可以通过控制输出缓冲区来实现,但我不会这样做,主要是因为它会延迟 JavaScript DOMReady 事件。

如果您正在寻找视觉效果,您应该使用 JavaScript(但根据您的问题,我没有看到任何使用 Ajax 的理由)。可以通过一个简单的 setInterval 来完成.考虑一个最初为空的 <div id="hello"> :

var i = 0;
var timer = setInterval(function(){
if(i == 10000) {
clearInterval(timer);
return;
}
var div = document.getElementById('hello');
div.innerHTML += 'hello ' + i + '<br>';
i++;
}, 250);

我刚刚看到您的编辑,现在我认为您实际上应该使用 Ajax!您链接到的示例确实如此。基本上,您必须在 JavaScript 中设置一个测试队列,其中每个测试都有一个唯一的 URL。然后只需使用 Ajax 一次触发一个请求(jQuery 和 $.get 将是最简单的方法)。以下假设 <ul>而不是我之前示例中的 div ,并且服务器将为每个测试响应成功或失败消息:
var tests = [
'http://example.com/test1',
'http://example.com/test2',
'http://example.com/test3',
];

function processQueue() {
if(tests.length > 0) {
var test = tests.shift();
$.get(test, function(response) {
$('#some_ul').append('<li>' + response + '</li>');
processQueue();
});
}
}

processQueue();

关于php - 是否可以在完成处理之前在 while 循环中打印 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10569125/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com