睡眠()功能没有做我认为应该做的事情

时间:2013-07-15 23:03:56

标签: php

首先,纠正我,如果我错了,但我假设当你运行Sleep()函数时,它会暂停运行脚本所在的脚本,而不是在开头。如果这是真的,有人可以告诉我为什么下面的脚本等待5秒,然后同时显示两个回声。不回显页面加载的第一个语句,然后等待5秒,然后激发第二个回声......

      echo "Your account username has been updated, you will now be redirected to the home page!";
      sleep(5);
      echo "REDIRECT!";

1 个答案:

答案 0 :(得分:2)

在你的代码中,PHP执行将暂停5秒,但不会逐个呈现自己。即它不会显示第一个语句,然后显示第二个语句。 PHP将其所有值保存在输出缓冲区中,并在完成执行后显示它们。

发生的是,它保存输出缓冲区中第一个echo的值,然后等待5秒,然后在输出缓冲区中保存另一个echo输出,一次显示所有

你想要做的事情在JS中要容易得多。

echo "Your account username has been updated, you will now be redirected to the home page!";
echo "<script> document.setTimeout(function() { document.location('redirect.html'); }, 5000); </script>";
相关问题