我正在使用使用PHP和JavaScript的SSE。爲什麼打印數據時,php會在客戶端斷開連接時中止,但是否則不會中斷?
我有一個循環(使用壽命爲15秒,用於開發目的),並且添加了「啓動連接」,「仍在此處」(睡眠1秒後)和「結束連接」數據庫用於調試目的。
我發現當php腳本運行時沒有「print」ing /「echo」ing /「var_dump()」任何信息時,無論客戶端是否運行,腳本(讀取「loop」已經終止連接或沒有。
但是,當我打印/ echo/var_dump什麼 - 腳本終止,只要用戶終止。
爲什麼存在這種差異?
默認情況下,腳本應在客戶端斷開連接時中止。如果您在'php.ini'中設置了'ignore_user_abort'選項,則會禁用此選項。參見http://php.net/manual/en/features.connection-handling.php。 – Barmar
'ignore_user_abort'沒有在我的'php.ini'中設置,但是當你有一個循環運行時,循環不會在用戶斷開連接後結束。 (除非你打印/回顯/轉儲輸出)。 –