2011-06-04 70 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.