如果向服務器發出ajax請求以在後端運行腳本,並且用戶關閉了瀏覽器。如果腳本啓動並處於中間進程,該腳本是否會在後端完成執行?關閉瀏覽器會阻止PHP腳本執行完嗎?
4
A
回答
4
否..,PHP腳本不會終止它的執行。
是的..它會完成它的執行。
一旦php腳本啓動,它會完成它的執行,然後停止。
因爲,php運行在服務器端,它不能被客戶端簡單事件打斷,如browser window close
。
但是,客戶端將無法看到輸出。
爲前:
試試這個代碼:
//File Name: xyz.php
<?php
$fp=fopen("output.txt","w");
$count=0;
for($count=0;1;$count++){
//Infinite loop
fwrite($fp,"".PHP_EOL."".$count."");
}
fclose($fp);
?>
現在測試這個文件,你關閉瀏覽器窗口後,也它會繼續到輸出文件(output.txt
)內進行打印。
不要忘記從command prompt
或task manager
關閉php
腳本雖然,或者它會填滿你的硬盤驅動器(我跑了,對於僅僅10秒,在5秒的瀏覽器被關閉,它消耗160 MB! )。
下面是結果分析:
最初文件大小爲:瀏覽次數,
後五秒鐘:76 MB(瀏覽器是在直到這點)。
七點後秒:125 MB(假設在瀏覽器關閉延遲,現在的瀏覽器是完全關閉),
不過10秒後:160 MB(這證明PHP在後臺運行:-) )
現在我已經關掉httpd
並且尺寸現在是恆定的。
如果你想看到這種情況發生之前fwrite()
爲補充usleep
:
usleep(1*1000*1000); // Sleep for 1 sec.
fwrite($fp,"".PHP_EOL."".$count."");
現在你可以看到它的發生是output.txt
文件中。即使關閉瀏覽器後也是如此。然而,由於延遲因素,上面給出的結果分析現在不適用於此(如果僅考慮文件係數的大小)。
1
那麼,PHP是服務器端,它計算所有的代碼,然後將結果發送到客戶端。所以我想即使關閉瀏覽器,它也會完成腳本執行。
相關問題
- 1. 當我關閉瀏覽器時,PHP腳本會終止嗎?
- 2. 在瀏覽器關閉時停止執行php腳本
- 3. 如何在拍賣完成和瀏覽器關閉時執行php腳本
- 4. 關閉瀏覽器後,Google應用腳本停止運行
- 5. 運行很長時間執行php腳本甚至瀏覽器關閉
- 6. 當瀏覽器關閉時PHP會在後臺運行嗎?
- 7. 關閉瀏覽器清除PHP會話
- 8. PHP會議上就關閉瀏覽器
- 9. 腳本不會停止,同時關閉瀏覽器或單擊中止
- 10. php腳本不會在瀏覽器中執行
- 11. 關閉瀏覽器(PHP)
- 12. 瀏覽器阻止?
- 13. 瀏覽器停止/崩潰是否停止腳本執行?
- 14. 來自Ajax的php腳本在瀏覽器關閉後停止加載
- 15. 阻止瀏覽器緩存會話ID
- 16. 執行php時關閉瀏覽器窗口
- 17. 瀏覽器彈出窗口阻止程序已關閉/打開
- 18. 如何阻止selenium webdriver關閉瀏覽器?
- 19. 阻止瀏覽器使用firebreath關閉插件
- 20. 有人從命令行關閉執行php腳本時會被調用嗎?
- 21. PHP:阻止瀏覽器請求
- 22. PHP腳本時,通過瀏覽器執行,但在命令行
- 23. php執行功能通過瀏覽器執行php腳本不同於不通過瀏覽器
- 24. 防止瀏覽器在asp.net中關閉
- 25. 關閉瀏覽器
- 26. 阻止IE瀏覽器
- 27. FB.UI被瀏覽器阻止?
- 28. 腳本執行期間瀏覽器會話過期
- 29. 即使用戶關閉瀏覽器,PHP腳本能否繼續運行?
- 30. 會話cookie不會在瀏覽器上關閉關閉
其實是的,他問腳本是否會完成它的執行:D – 2014-09-05 09:51:25