首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用usleep()有困难;

使用usleep()有困难;
EN

Stack Overflow用户
提问于 2011-10-21 04:07:49
回答 6查看 190关注 0票数 1

我有这个:

代码语言:javascript
复制
echo "<font color=\"#000000\">text</font>";
usleep(2000000);
header("location:/otherpage.php");
 ?>`

请注意,这将包含在iframe中...

问题是它没有回显echo语句,而是休眠了两秒钟,然后重定向(除了echo部分,其他都是正确的)……

有人知道为什么会发生这种事吗?它不是iframe,因为当您直接转到文件(独立于iframe)时,也会发生同样的情况。会不会是我们的睡眠??

谢谢

EN

回答 6

Stack Overflow用户

发布于 2011-10-21 04:12:36

您在上面所做的操作将不起作用。首先,您需要执行刷新,以确保数据已发送。其次,更重要的是,您不能在刷新后更改头部,这将导致头部或文本不被发送。

如果您想要做的只是在延迟后更改数据,您是否考虑过执行以下操作:

代码语言:javascript
复制
header('Refresh: 2; url=http://my.site.com/otherpage.php);
echo "<font color=\"#000000\">text</font>";

这将在浏览器中发送信息,指示浏览器在2秒后更改为新的URL。

票数 5
EN

Stack Overflow用户

发布于 2011-10-21 04:10:55

这是行不通的,因为你不能在输出文本后改变标题。当您想精确复制此行为时,唯一的选择是使用meta refresh或javascript。

但是输出问题可以通过刷新缓冲区来解决,但是就像我之前提到的那样,重定向是不可能的。

另一个非常重要的事情是:不要使用USLEEP来做这样的事情。为什么?因为当你的脚本被重载时,每一个需要太多时间的请求都是非常糟糕的,并且你会用完php线程(取决于你的php webserver实现)。因此,对于这样的超时,您应该使用客户端代码(如果可能)。

票数 3
EN

Stack Overflow用户

发布于 2011-10-21 04:12:59

它在服务器上休眠,然后发送输出。同样,你不能在回显后发送报头。

您应该使用javascript或meta重定向,这将允许您在重定向之前等待几秒钟,这两种重定向的时间和url都可以由您的php脚本生成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7841614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档