我不是http請求方面的專家,所以這個問題對於一些人來說可能是微不足道的。我向php腳本發送了一個請求,這需要花費很多時間來處理文件並返回響應。在腳本完成其任務以讓用戶瞭解進程狀態之前,有沒有辦法發送響應?由於此任務可能需要幾分鐘時間,所以我想在流程的關鍵部分完成時通知用戶。http請求部分響應
注:我不能打破這一請求轉換成其他幾個人
我可能沒有正確的做法在這裏,如果這樣做,你有其他的想法如何可以這樣處理?
我不是http請求方面的專家,所以這個問題對於一些人來說可能是微不足道的。我向php腳本發送了一個請求,這需要花費很多時間來處理文件並返回響應。在腳本完成其任務以讓用戶瞭解進程狀態之前,有沒有辦法發送響應?由於此任務可能需要幾分鐘時間,所以我想在流程的關鍵部分完成時通知用戶。http請求部分響應
注:我不能打破這一請求轉換成其他幾個人
我可能沒有正確的做法在這裏,如果這樣做,你有其他的想法如何可以這樣處理?
從技術上說是的,但它需要你對http-stack進行細粒度的控制,在典型的php設置中你可能沒有。我建議你考慮其他解決方案(如製作請求啓動任務 - 然後輪詢以獲取有關的最新進展)
我認爲長時間處理請求的最佳方式是cron作業。你可以發送請求來創建'任務'並通過cron作業來捕獲任務。 Cron作業可以在工作時更改任務狀態,並且可以通過間隔請求檢查任務狀態。我無法想象以另一種方式告知用戶有關請求處理的方式。只要你的迴應你的頭被髮送和PHP停止。
編輯:應該指出的是,Cron作業只在Linux服務器上可用。 Windows服務器需要訪問大多數Web主機不允許的任務調度程序。
我不是在尋找進度條。 – slash197
我唯一能想到的就是讓php腳本存儲會話ID和進度值(但是你想計算它)在一個用異步方式檢查ajax的數據庫中。 這些可能是關聯狀態而不是數字。例如,status ='正在執行第一個任務'... status ='第一個任務完成,開始第二個任務'...等 但這個想法仍然有第二個Ajax調用來檢查腳本正在更新的內容其過程 –