2011-10-13 26 views
2

如果我想暫停PHP中的代碼執行,我使用sleep()? 如果是這樣,那麼在傳遞給sleep()的秒數正在運行時,客戶端發生了什麼?沒有?它只是等待Web服務器的響應?或者它告訴瀏覽器 - 「好的,我收到了您的請求,但您必須等待X秒,直到我向您發送回覆。」 ?如何暫停PHP中的代碼執行以及等待時發生了什麼

謝謝。

回答

7

sleep()只是將腳本暫停指定的時間間隔。它在內部告訴操作系統「我要睡覺,在X秒內喚醒我」。除非PHP腳本向客戶端瀏覽器輸出將要休眠的消息,否則瀏覽器將直接掛起,直至它確定連接已中斷,網絡連接因缺少活動而死亡,或腳本被喚醒並恢復操作。 sleep()是純粹的服務器端操作,並不會改變客戶端上的任何內容。

5

客戶端只是等待。它不會以任何方式告知您正在浪費時間:-)

+0

謝謝墊。 – Francisc

+0

不客氣! – Mat

1

有一件事我確定,Web服務器無法知道腳本將在多少秒鐘內結束,想象腳本在繁重的MySQL查詢上工作,它如何告知何時會結束。

如果我想暫停PHP中的代碼執行,我使用sleep()嗎?

這是generaly真實的,但是每一個案件都是不同的,也許對某些情況下,其他可以找到解決辦法(也許AJAX?取決於..)

+0

謝謝你,Melsi。 – Francisc

+0

你太客氣了! – Melsi

相關問題