我目前正在尝试获取PHP循环状态并更新HTML5进度条。 按钮单击触发循环,每次执行后设置为5000,睡眠时间为1秒。我当然也做了一个Ajax请求,每秒重新获得当前的循环数并更新进度条。但是请求总是等到循环完成并向我显示一个类似" 1234567891011 ......"
这是我的JQuery代码,它非常简单,因为它仅用于测试和学习目的
function getStatus() {
$.ajax({
url : 'ajax.php',
dataType: "html",
type: "POST",
data: {request: 'request',},
success: function( data ) {
//Call function to update status on the loading bar
updateBar(data);
}
});
//Update loading bar
function updateBar(data) {
$('progress').attr('value', data);
}
}
function setGo() {
$.ajax({
url : 'ajax.php',
dataType: "html",
type: "POST",
//async: false,
data: {status: 'GO',},
success: function( data ) {}
});
}
$('#start').click(function(event) {
setGo();
setInterval(function() {
getStatus();
}, 1000);
});
这是我的PHP代码
<?php
//Overwrite php execution limit
set_time_limit(120);
if($_POST['status'] = 'GO') {
$number = 5000;
$counter = 0;
for($i=0; $i != $number; $i++) {
$counter++;
sleep(1);
if(isset($_POST['request'])) {
echo $counter;
}
}
}
?>
我尝试了很多不同的方法并阅读了很多帖子,但不知怎的,对我来说没什么用。 希望有人有个主意。
答案 0 :(得分:-1)
好好看看你的&#34; echo $ counter;&#34;在你的PHP脚本中,这是一个(5000次)循环。
答案 1 :(得分:-1)
在解释并执行PHP代码之后,Web服务器将结果输出发送到其客户端,通常以生成的网页的一部分的形式发送 - 例如,PHP代码可以生成网页的HTML代码
来自PHP的维基页面
这基本上意味着整个php文件将始终在返回输出之前执行。在返回输出之前,循环将执行5000次。