我想创建一个列表,显示自己慢慢在屏幕上,但似乎所有的例程完成之前,他们提出自己。
例如:
for ($x = 0; $x <= 25; $x++)
{
echo "The number is: $x <br>";
sleep(1);
}
在我看来,这应该显示&;数字是1&;,等待1秒,然后显示&;数字是2&;。实际上,它等待了25秒,显示了所有的数字,除了似乎有一个错误,因为它实际上只显示了前10个!!
编辑:我也试过"usleep"有相同的效果
我不关心这个错误,但是我如何添加一些等待呢?
编辑:接下来,我仍然得到同样的问题与这个代码。
for ($x = 1; $x < 5; $x++)
{
$st=$_SESSION['st']=$x;
echo '<iframe class="findlist" name="iframefindlist" id="findlist" src="findmelist.php"></iframe>';
ob_flush();
flush();
usleep(3000000);
}
然后是" findlist .php">
<body>
<?php
$st=$_SESSION['st'];
$conn = new mysqli("localhost", "acc", "pw", "db");
?>
<div class="findlist1">
</div>
<div class="findlist2">
<?php
$result = mysqli_query($conn,"SELECT * FROM tablename WHERE number='$st'");
while($row = mysqli_fetch_array($result))
{
$fname=$row['fname'];
$lname=$row['lname'];
}
echo $fname.' '.$lname;
?>
</div>
<div class="findlist3">
</div>
</body>
您需要首先刷新output_buffer,否则只有在执行完成时才会发送答案。
ob_flush();
flush();
对于你的代码,这意味着:
for ($x = 0; $x <= 25; $x++)
{
echo "The number is: $x <br>";
ob_flush();
flush();
sleep(1);
}
有关更多信息,请参阅以下参考。