我正在調用ajax調用來驗證n個數據。
由於需要花費很多時間才能完成,我想向用戶顯示進度欄或告訴1/n已完成
爲了顯示,我應該從控制器獲取狀態。
有人可以告訴我有沒有辦法在完成之前從控制器獲取狀態?或者還有其他更好的實施方式嗎?我們可以獲得Ajax調用的狀態,例如完成20%嗎?
0
A
回答
0
由於普通的AJAX是一個經典的請求 - 響應,所以無法從具有相同連接的服務器獲取進度信息。您必須進行新的AJAX調用才能向服務器請求任務進度。這被稱爲心跳池技術。
更好的解決方案是使用某種持久連接,例如Websockets。通過這種方式,服務器可以通過啓動任務的同一連接向客戶端推送帶有進度信息的消息。 Websocket在瀏覽器中的採用非常強勁。
+0
從問題中可以明顯看出,提問者想知道服務器任務的進度,而不是HTTP請求的進度。 – srigi
0
0
,你可以嘗試以下操作: 在您通過AJAX調用請求的php文件可以設置包含th的$ var e過程。 例如,您每5行增加一個var。增加後,您可以調用執行動畫過程的函數,或者僅以百分比形式回顯過程狀態。
<?php
$process = 0;
function foo(){
doSomething();
$process++;
showProcess();
}
function showProcess($process){
echo $process;
//some lazy effects
}
?>
這個方法的負面影響是(屬於複雜性)你的程序會慢一點。
相關問題
- 1. 我以前的成功完成後如何獲得ajax調用
- 2. 我們可以隱藏狀態欄嗎?
- 3. 我可以使用PS獲得RAID磁盤狀態嗎?
- 4. 我可以在完成塊中修改http響應狀態嗎?
- 5. 我可以獲得Travis CI作爲json響應的狀態嗎?
- 6. 我們可以從靜態方法訪問/調用無狀態會話Bean嗎?
- 7. 我們可以使用AJAX和XHTML嗎?
- 8. 我們可以禁用AOP調用嗎?
- 9. ajax可以在Android中完成嗎?
- 10. 如何在Bacon.js中獲得Ajax調用的狀態?
- 11. 我們可以改變飛機狀態的系統設置嗎?
- 12. 我們可以找出Paperclip下載完成的時間嗎?
- 13. hadoop - 我們可以在完成mapreduce作業後檢查狀態多久?
- 14. 所有最終狀態都可以從DFA的起始狀態中獲得嗎?
- 15. 我們如何獲取數據綁定以使用保存的實例狀態?
- 16. 我可以從AJAX調用中獲得安全的XML文件嗎?
- 17. 我可以實例化一個指定的無狀態bean嗎?
- 18. 我可以在使用Guice的方法中獲得實例嗎?
- 19. 我可以用C++和Opencv以20 fps捕獲嗎?
- 20. ZK我們可以保存Windows組件狀態嗎?
- 21. 我們可以用Xamarin.Forms爲UWP獲得流體設計嗎?
- 22. jQuery使動態Ajax調用,並等待他們完成
- 23. 我如何在完成PayPal的狀態
- 24. 上傳完成後,我們可以獲取onedrive上傳的文件鏈接嗎?
- 25. 如何獲得有關狀態機完成的通知?
- 26. YoutubeDL - 如何獲得下載完成後的狀態對象
- 27. 我們可以得到現成的設置包嗎?
- 28. 可以使用Unix shell以某種方式報告完成狀態嗎?
- 29. 完成活動後,我們可以顯示對話框嗎?
- 30. 如何獲得OnUtterance完成被調用?
這是由Matthew Flaschen提供的有趣答案,可能會幫助你 http://stackoverflow.com/questions/3163229/check-status-of-a-jquery-ajax-request –
首先關於你在說什麼框架關於。第二,我建議你發佈相關代碼,以便任何願意幫助你的人都能看到你在做什麼。所以要善良併發布你的代碼:) – Franco