[英]AJAX and PHP after page refresh
我正在對一個需要很長時間才能運行的PHP腳本進行AJAX調用。 現在,假設它需要20分鍾才能運行。 還假設我刷新或關閉然后打開了啟動呼叫的網頁。 我的問題是:
我的PHP腳本是否停止運行?
如果它繼續運行,如何在刷新后強制響應頁面?
謝謝。
** * ** * ** * ** * *更新* ** * ** * ** * ** *
有些人在問為什么我有一個需要很長時間的腳本。 我認為不解釋以下內容是我的錯:
一種。 此腳本僅適用於站點管理員,並且不適用於一般公眾
灣 這個腳本將執行一些繁重的工作,例如數據操作和數據庫相關的東西,並且需要很長時間才能運行
C。 我正在使用AJAX,所以我仍然可以返回到主頁面,一個微調器顯示腳本正在運行,而腳本實際上在后端運行,而回調函數將刪除微調器並顯示一個消息成功/失敗狀態。
不,它會停止運行。
您應該使用cron作業來運行一個需要20分鍾的腳本。
別忘了為該頁面設置至少20分鍾的時間限制!
- 我的PHP腳本是否停止運行?
是的,如果瀏覽器斷開連接(將刷新/關閉),PHP將停止執行。 您可以使用ignore_user_abort(true)
來防止這種情況,但我認為這不是您想要的最佳選擇。
- 如果它繼續運行,如何在刷新后強制響應頁面?
不,因為連接已經消失,沒有任何回復的回復。 在ajax調用它時,將更長的進程調用為后台進程更合適,並立即返回響應,使后台進程正常工作。 您可以使用常規的ajax調用來查詢進程是否完成(例如在完成時更新數據庫)。
來自文檔 :
但是,默認行為是在遠程客戶端斷開連接時中止腳本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.