回显时 - 不要写多行,而是覆盖一行

  • 本文关键字:覆盖 一行 php html
  • 更新时间 :
  • 英文 :


>im试图编写一个在一行上显示计数器的循环,已经坐在这里一个多小时了,但无法弄清楚。

主循环是

while($counter< 100){               
    echo $counter;
    usleep($timeInSeconds*1000000);
    $counter=$counter+1;
}

现在,这会在新行上延迟后打印 100 个数字。回声是否有可能为每个循环替换自身?


我尝试了很多选项,这是一个没有崩溃的选项:

while($counter < 100){
        $counter=$counter+1;
        echo $counter;
        usleep($timeInSeconds*1000000);
        flush();
        ob_flush();    
    }

但是,使用此选项,它可以在一行中工作,但不会清除之前的回声,因此它只是一堆彼此相邻的数字

有人可以帮助我吗?

您正在尝试在服务器上执行应在客户端上执行的操作。

我希望你正在制作一个计时器。您应该编写一些JavaScript代码,指示Web浏览器如何显示多个数字,中间有延迟。您当前的代码将在许多浏览器的整个持续时间内显示加载轮和空白屏幕。

相反,请将循环替换为以下内容:

var time_in_seconds = 1; // You can replace 1 with the value of the PHP variable
var count_element = document.getElementById("example_counter");
var n = 0;
var interval_id;
function update_counter(){
  n += 1;
  if (n >= 100) {
    clearInterval(interval_id);
  }
  count_element.textContent = n;
}
interval_id = setInterval(update_counter, time_in_seconds * 1000);
<span id="example_counter"></span>

最新更新