【问题标题】:Using the php sleep() function使用 php sleep() 函数
【发布时间】:2013-05-30 11:59:36
【问题描述】:

我正在尝试打印一些东西,请等待 5 秒钟,然后转到另一页。 我正在使用睡眠功能,但由于某种原因没有打印任何内容,并且看起来它跳过了打印部分。

看起来像这样:

<?php
echo "Thank you!";
sleep(5);
?>
<script type="text/javascript"> window.location = '?a=home'; </script>

【问题讨论】:

  • 如果你想这样做,那么你必须在 JavaScript 中使用 setTimeout。 PHP 在您的页面显示之前运行完成
  • 它并没有跳过它,它只是在渲染给客户端之前处于休眠状态。您编写的事件顺序是“睡眠 5 秒,打印内容,移动到另一页。”

标签: php html


【解决方案1】:

您需要删除 php 并仅使用 javascript:

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

【讨论】:

  • 谢谢先生!只要网站允许,我就会接受你的回答。
【解决方案2】:

也许最好使用 HTML 元刷新标签。它具有相同的功能,但来自客户端:

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

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

【讨论】:

    【解决方案3】:

    您可以使用 javascript 来做到这一点:

    setTimeout('window.location.replace("?a=home")',5000);
    

    【讨论】:

    • 这个答案会起作用,但在setTimeout 中使用字符串作为代码是不好的做法。根据投票最多的答案,将其写为函数。
    【解决方案4】:

    您可以使用 javascript 或使用标头来完成。

    在js中:

    <script>
    window.setTimeout('window.location = "?a=home"', 5000); //5000 = 5 secs
    

    使用标题:

    header('Refresh: 5;url=page.php?a=home'); // 5 = 5 secs
    

    相关帖子: How to Redirect Page in PHP after a few seconds without meta http-equiv=REFRESH CONTENT=time

    【讨论】:

      【解决方案5】:

      我很确定使用睡眠只会延迟程序执行。您只会在 PHP 脚本完成后才能看到内容,并且由于 sleep 功能而阻止它这样做。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-19
        • 2018-08-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多