2011-06-04 72 views
0

我想在1秒延迟后绘制文本,而不会在所有延迟时间内停止页面加载。延迟PHP回声,不停止页面?

有谁知道如何?

我有下面的内容,而不是绘制时间和“你好”,然后等待一秒钟,然后绘制“再见”,然后是另一秒钟,最后是“结束”....它等待2秒钟,然后吸取一切。

<?php 

echo date('H:i:s'); 
echo "<br>"; 
echo 'Hello'; 
echo "<br>"; 
sleep(1); 
flush(); 

echo 'Goodbye'; 
echo "<br>"; 
sleep(1); 
flush(); 

echo 'The End'; 
?> 
+1

我想的JavaScript会在这更好的。 – check123 2011-06-04 10:16:11

+1

尝试usleep maybie,'usleep(1000000);' – Kamil 2011-06-04 10:16:53

+0

这可以工作,但它取决于浏览器和服务器 - javascript/ajax可能是一个更好的东西,如果它从服务器端检索的东西。 – BugFinder 2011-06-04 10:20:05

回答

3

由于PHP是在服务器端执行的,用户在脚本执行完毕之前不会得到输出。要添加输出消息的可见延迟,您必须使用JavaScript或其他客户端执行的脚本语言。

+0

很酷谢谢:)我会研究这个。 – buzzkip 2011-06-04 10:18:38

+1

要展开此操作...如果您需要在加载页面后访问服务器端数据,然后使用Ajax将回调函数发回服务器,以便获取最新数据。 – 2011-06-04 10:52:18

1

可以在一定程度上这种方式使用jQuery:(假设你的文字被初始化为Hello)

$('#id-of-your-tag-containing-text').fadeOut(500, function() { 
     $('#id-of-your-tag-containing-text').html("GoodBye!"); 
     $('#id-of-your-tag-containing-text').fadeIn(500); 
     $('#id-of-your-tag-containing-text').fadeOut(500, function() { 
       $('#id-of-your-tag-containing-text').html("The End!"); 
     }); 
     $('#id-of-your-tag-containing-text').fadeIn(500); 
}); //Note that the number 500 represents the time delay in milliseconds.