[請益] 大量運算執行中,進度的回傳

作者: aaa7513231 (渾沌與秩序)   2016-04-15 15:35:07
大家好,我目前寫的一支PHP
執行計算並貼到Excel上去
但他的執行時間可能要到達20秒以上
這樣網頁的使用者一定會覺得很困惑不知道檔案是否有在執行還是掛了
想請問這樣大執行運算的程式大家會怎樣寫
並且做錯誤管理,因為我也常常發生其中一段計算有問題
就整個檔案不能下載
希望大家能提供意見,謝謝大家
作者: LaPass (LaPass)   2016-04-15 15:44:00
用命令列去執行先讓網頁傳回結果要使用者等,然後用命令列去call php,執行耗時的部份。還有php本身就不適合幹這種事情....
作者: aaa7513231 (渾沌與秩序)   2016-04-15 16:01:00
我比較想知道說,我希望讓網頁可以知道計算進度的話除了我網頁設計時器去讀資料庫跟我PHP紀錄進度在資料庫外,有沒有其他比較恰當的做法
作者: springman (司布林)   2016-04-15 16:27:00
大量運算的話,用 C 語言執行速度還是比較快。
作者: LaPass (LaPass)   2016-04-15 16:40:00
ajax websocket 選一個,基本上就是這樣
作者: hung0724 (三頭)   2016-04-15 17:44:00
要及時的process bar這樣?
作者: rockmanalpha (KIN)   2016-04-15 18:14:00
用Ajax比較好 PHP也有辦法在執行中強制輸出內容但這種辦法無法配合介面顯示 用Ajax比較好
作者: shadowjohn (轉角遇到愛)   2016-04-15 18:47:00
進度定期噴到暫存檔,ajax定期讀取
作者: aaa7513231 (渾沌與秩序)   2016-04-16 01:26:00
ajax應該沒辦法回應很多段吧?有考慮用stocket,對他不是很熟所以才詢問大家的意見然後會用php計算是因為我後台只會用php跟Python,他運算很久應該是因為大量的資料庫抓取分析,所以優化程式碼可能沒辦法
作者: shadowjohn (轉角遇到愛)   2016-04-16 01:34:00
是你不會...不是不能
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-04-16 17:42:00
你"應該"不怎麼熟ajax對不對。
作者: locklose (允)   2016-04-16 20:07:00
除非你用MQTT,不然解決方法就這樣http://goo.gl/ASFgv0
作者: imcar (imcar)   2016-05-02 20:32:00
https://eweb.dayes.tc.edu.tw/simple-show-progress/利用前端ajax去讀後端程式寫的json,把進度或錯誤都寫到json

Links booklink

Contact Us: admin [ a t ] ucptt.com