2013-04-20 80 views
1

我想做到以下幾點:PHP提交表單並獲取部分結果是進步

我有,你輸入一個IP地址,並以檢查幾件事情提交到PHP腳本的形式。

輸出是漸進的,需要一些時間直到完成。

我想逐漸輸出結果並將其發回表單。

你能請指教從哪裏開始?

+0

做這種事情的唯一方法就是通過套接字。你的選擇可能會像Web套接字(很新),一個Java插件或Flash(我敢肯定他們可以套接字)。否則,將HTTP請求發佈到服務器是一種全或無的請求。否則,你不得不把你的頁面檢查的任何「東西」分成多個步驟,你可以使用AJAX來調用它們,並讓腳本顯示返回的內容。當然,如果每個請求都很長且密集,請關注服務器上的工作負載。 – jmbertucci 2013-04-20 13:15:58

回答

1

你可以分裂你的PHP腳本在多個腳本。而不是隻發送一個請求與表單,你發送多個AJAX請求。 然後在他們回來時顯示結果。 由於您從未離開過,因此無需重新發布到表單。

+0

爲什麼會涉及將PHP腳本分成多個腳本? – ubik 2013-04-20 13:40:39

+0

爲了得到按要求逐步輸出結果 – 2013-04-20 13:44:19

+0

您是否將腳本分成更小的任務? – ubik 2013-04-20 13:47:03

0

您將需要將任務執行從HTTP請求中分離出來,因爲HTTP是無狀態的,除非您使用WebSockets或任何其他類流技術,否則將被迫返回即時結果。

因此,我基本上會發送第一個請求,開始在服務器上執行作業(可以使用現成的作業隊列),然後這個作業將輸出存儲在數據庫中。作業將獨立於HTTP工作流程執行。

然後,您可以使用AJAX輪詢服務器,詢問進度信息。當然,您可以通過在頁面加載時生成的唯一ID或使用cookie來唯一標識客戶端。