我編寫了一個php的網頁。頁面中有一個while循環,用於從數據庫中檢索數據,並使用數據執行某些邏輯並更新數據庫中的相同數據。這個循環需要4分多鐘才能完成循環的整個處理。然後處理剩餘的頁面代碼。PHP的強制停止頁面加載
現在,在一些時間,而頁面加載了while循環的過程,它尚未完成,如果我按Esc鍵按鈕,這意味着,我強迫從多個處理停止頁面。現在,如果我突然刷新頁面,則需要很長時間才能在同一網站上加載任何頁面。我認爲當我突然刷新頁面時,循環的其餘部分正在完成。
我想這個頁面正常重新加載頁面,並且不依賴於先前停止動作。
在你心中是否有解決這個問題的方法?我也通過Ajax嘗試過,但同樣的問題仍然存在。
你描述的行爲很奇怪,在正常情況下不應該發生。資源鎖定是否存在問題?即。您取消的腳本仍在運行並鎖定新腳本試圖打開的文件?或者,也許你正在寫/讀同一個(鎖定的)數據庫表? – Halcyon
@FritsvanCampen如果你正在進行一些激烈的數據庫查詢......或者真的需要4分鐘才能完成,這並不奇怪。 – Brad
(1)確保'ignore_user_abort'已關閉,並且循環中有垃圾郵件空間(應該沒有區別它是HTML,但Web服務器需要意識到存在斷開連接,但如果這不起作用,不要在web服務器上做很大的工作:在其他地方使它成爲一個異步作業,比如使用'gearman',這假設數據庫本身不是問題 – Wrikken