簡體   English   中英

頁面刷新后的AJAX和PHP

[英]AJAX and PHP after page refresh

我正在對一個需要很長時間才能運行的PHP腳本進行AJAX調用。 現在,假設它需要20分鍾才能運行。 還假設我刷新或關閉然后打開了啟動呼叫的網頁。 我的問題是:

  1. 我的PHP腳本是否停止運行?

  2. 如果它繼續運行,如何在刷新后強制響應頁面?

謝謝。

** * ** * ** * ** * *更新* ** * ** * ** * ** *

有些人在問為什么我有一個需要很長時間的腳本。 我認為不解釋以下內容是我的錯:

一種。 此腳本僅適用於站點管理員,並且不適用於一般公眾

這個腳本將執行一些繁重的工作,例如數據操作和數據庫相關的東西,並且需要很長時間才能運行

C。 我正在使用AJAX,所以我仍然可以返回到主頁面,一個微調器顯示腳本正在運行,而腳本實際上在后端運行,而回調函數將刪除微調器並顯示一個消息成功/失敗狀態。

不,它會停止運行。

您應該使用cron作業來運行一個需要20分鍾的腳本。

別忘了為該頁面設置至少20分鍾的時間限制!

  • 我的PHP腳本是否停止運行?

是的,如果瀏覽器斷開連接(將刷新/關閉),PHP將停止執行。 您可以使用ignore_user_abort(true)來防止這種情況,但我認為這不是您想要的最佳選擇。

  • 如果它繼續運行,如何在刷新后強制響應頁面?

不,因為連接已經消失,沒有任何回復的回復。 在ajax調用它時,將更長的進程調用為后台進程更合適,並立即返回響應,使后台進程正常工作。 您可以使用常規的ajax調用來查詢進程是否完成(例如在完成時更新數據庫)。

來自文檔

但是,默認行為是在遠程客戶端斷開連接時中止腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM