如果我的網站有一個按鈕,該怎麼辦?用戶點擊按鈕並開始長時間運行的過程。幾個小時(或幾分鐘)後用戶更新網頁並查看結果。在網站上實施長時間運行的最佳(以及其他)方式是什麼?網站上的長時間運行
回答
從用戶體驗的角度來看,我建議您像在網上商店中實施訂單處理一樣執行工作。
當用戶開始工作時,他應該能夠跟蹤工作狀態。工作完成了嗎?工作失敗了嗎?這份工作的進展如何?他應該也可以取消這項工作,也許可以修改工作的屬性。您可以使用電子郵件或SMS實施通知機制,用戶應該能夠控制該通知機制。
通過使用JavaScript/AJAX,您可以提供更加交互式的用戶體驗,其中作業狀態網頁在後臺定期自動刷新而不會強制用戶刷新其瀏覽器。
用戶應該能夠離開他的計算機,然後從另一臺計算機連接到該網站,仍然能夠獲得有關待處理和已完成作業的信息。這需要某種形式的用戶登錄。
我建議您將作業處理代碼與網站代碼分開。您可以向作業處理用戶公開Web服務或其他類似技術。網站應查詢服務並在作業服務之上顯示提供用戶界面的結果。
我有一個類似的情況,我想處理這個長時間運行operation.Can你建議我一些如何做到這一點,請嗎? – 2018-01-25 06:24:24
我建議您閱讀Threading in asp.Net.對於網站性能,耗時的過程可以放在不同的線程上。
另一種方法是使用AJAX執行任務。這樣,您可以向用戶呈現用戶界面,並啓動處理請求的異步進程。
這不是一個有用的網站解決方案。 Web應用程序是客戶端服務器體系結構,您無法以異步方式將答案發送回瀏覽器。您將不得不在瀏覽器中通過javascript線程輪詢該進程的狀態。 – slfan 2011-05-18 11:46:22
好點@slfan。感謝讓我意識到這一點 – 2011-05-18 11:53:01
需要多長時間?如果真的要花費數小時,您不希望代碼在Web服務器上運行。讓服務器產生一個外部進程或啓動一個服務或者沿着那條線,並將長時間運行的代碼放在那裏。
您可以讓代碼在運行時將狀態更新放置在某處(如數據庫中),並且網站可以檢查用戶何時回來查看它是如何執行的。
- 1. WP網站 - 從上運行的網站
- 2. 如何在長時間運行的進程上運行coverage.py?
- 3. mpirun運行時間太長
- 4. 長時間運行狀態
- 5. 取消長時間運行
- 6. SQL運行時間太長
- 7. 長時間運行合併
- 8. 長時間運行Flash Player
- 9. 如何防止NHibernate長時間運行的進程鎖定網站?
- 10. 如何從ASP.Net網站託管長時間運行的WF 4.0工作流程
- 11. 網站加載時間過長
- 12. 爲什麼我的網站在gtmetrix上加載時間太長?
- 13. WordPress網站上的漫長等待時間
- 14. 長時間運行的查詢超時
- 15. Azure網站上腳本/樣式的長時間等待(TTFB)時間
- 16. 長時間運行時泵信息+ C#
- 17. 從網絡界面運行長時間的實驗
- 18. 如何有網頁停止長時間運行的進程
- 19. 處理長時間運行的任務
- 20. aws codedeploy長時間運行的進程
- 21. 長時間運行的進程
- 22. 終止長時間運行的進程
- 23. JSF長時間運行的進程
- 24. 睡眠長時間運行的過程
- 25. 的Java BouncyCastleProvider運行很長時間
- 26. asp.net長時間運行的任務
- 27. setInterval和長時間運行的函數
- 28. Quartz.Net中的長時間運行作業
- 29. Rails中的長時間運行任務
- 30. 長時間運行的作業Spring
使按鈕變小。 – 2011-05-18 11:39:03