PHP当中的 sleep()函数问题

我用了一个简单的sleep的实例:<?phpechodate("h:s:i")."\n";ob_flush();flush();sleep(3);echodate("h:... 我用了一个简单的 sleep的实例:<?php
echo date("h:s:i")."\n";
ob_flush();
flush();
sleep(3);
echo date("h:s:i")."\n";
ob_flush();
flush();

?>
他怎么是同时输出的啊,虽然时间差上是3秒 ,但是我想法应该是先 在浏览器上输出现在的时间 ,然后到了三秒后又继续输出此刻时间,求大侠指导。。
展开
 我来答
anrainie
2011-03-29 · TA获得超过1012个赞
知道小有建树答主
回答量:306
采纳率:0%
帮助的人:364万
展开全部
同学,你要先理解php是在服务器端执行的
你的这个结果,却是被客户端浏览器解析的

所以,服务器执行了 输出1 睡眠3 输出2 用时3秒
然后返回了最终的结果

而,同时,浏览器是不能用html来动态显示内容的
你需要使用ajax
处理逻辑是:
ajax 控制js向服务器发报,服务器返回显示时间的页面,页面用js动态加入div中
这个过程用js控制,每3秒自调用一次
即是在js function中添加setTimeout( "方法名() ", 3000);

当然,还有另外一个方法,上面的方法能获得的是服务器端的时间,下面这个则是客户端的时间,处理逻辑如下:
和上个方法一样,写一个js的3秒间隔自调用函数,然后该函数会改变某个div的值,值显示为当前时间。

其实还有个方法,使用js每隔3秒来刷新当前页面。

但无论哪种方法 都用不到sleep
z_by
推荐于2016-08-02 · TA获得超过1947个赞
知道大有可为答主
回答量:2699
采纳率:66%
帮助的人:2064万
展开全部
你需要在第一个echo date("h:s:i")."\n";前加个echo str_pad(" ",256);
因为IE要在接受到的256个字节以后才开始显示该页面,不过发现最新版火狐要接收1024个字节后才能显示
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
瞿芙吾涵蕾
2019-08-21 · TA获得超过1108个赞
知道小有建树答主
回答量:1803
采纳率:100%
帮助的人:10.1万
展开全部
但是同时两次访问index1.php,第二个需要等第一个完成之后再等20秒才能正常显示,即第二个页面需要等40s才能正常显示
--------------------------------------
你是怎么同时2次访问index1.php的?
即第二个页面需要等40s才能正常显示
------------------------------------------
第二个页面也是index1?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
foxaobe
2011-03-29 · TA获得超过331个赞
知道小有建树答主
回答量:897
采纳率:0%
帮助的人:620万
展开全部
睡眠
诠释睡眠(诠释秒)

int sleep ( int seconds )
睡眠函数延迟为给定的秒数程序执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
oz43jsp
2011-03-29 · TA获得超过547个赞
知道小有建树答主
回答量:655
采纳率:0%
帮助的人:362万
展开全部
关闭浏览器后,服务器端当然仍会执行,只是你看不到而已
追问
这个我懂 ,关键是为什么是一起现实两个时间,而不是先显示了时间后过三秒钟然后继续显示当前的时间 ,我没有关浏览器 ,而是守着看他出现啊 。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式