使用php的sleep()函数

3
我正在尝试打印一些内容,等待5秒钟后转到另一页。我使用了sleep函数,但由于某种原因没有打印出任何东西,看起来好像跳过了打印部分。
代码如下:
<?php
echo "Thank you!";
sleep(5);
?>
<script type="text/javascript"> window.location = '?a=home'; </script>

2
如果您想要这样做,那么您需要使用setTimeout在JavaScript中完成。PHP会在您的页面显示之前全部运行完毕 - Jon
它并没有跳过它,只是在渲染到客户端之前睡眠。你写的事件顺序是“睡眠5秒钟,打印一些东西,移动到另一页”。 - David
5个回答

11

您需要移除 PHP 并仅使用 JavaScript:

<script type="text/javascript"> setTimeout(
function() {
    window.location = '?a=home';
}, 5000);
</script>

1
谢谢您先生!一旦网站允许我,我会接受您的答案。 - Imri Persiado

5

也许使用HTML的meta刷新标签更好。它具有相同的功能,但是是从客户端执行:

<meta http-equiv="refresh" content="5;URL='?a=home'">

您可以在这里找到更多信息:http://www.metatags.info/meta_http_equiv_refresh

该链接提供了有关meta http-equiv刷新标签的更多信息。

2
你可以使用JavaScript来实现这个功能:
setTimeout('window.location.replace("?a=home")',5000);

1
这个答案可以工作,但在setTimeout中使用字符串代码是不好的实践。按照得票最高的答案编写一个函数。 - Spudley

1

0

我相信使用sleep只会延迟程序的执行。只有在你的PHP脚本完成后,你才能看到内容,而由于sleep函数,你正在阻止它完成。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接