我正在調用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. 我可以使用PS獲得RAID磁盤狀態嗎?
- 3. 我可以在完成塊中修改http響應狀態嗎?
- 4. 我們可以使用AJAX和XHTML嗎?
- 5. 我們可以禁用AOP調用嗎?
- 6. 我們可以改變飛機狀態的系統設置嗎?
- 7. 我們如何獲取數據綁定以使用保存的實例狀態?
- 8. 如何獲得有關狀態機完成的通知?
- 9. 我們可以用Xamarin.Forms爲UWP獲得流體設計嗎?
- 10. 上傳完成後,我們可以獲取onedrive上傳的文件鏈接嗎?
- 11. 如何獲得OnUtterance完成被調用?
- 12. 完成活動後,我們可以顯示對話框嗎?
- 13. 如果我們只允許局部變量是可變的,我們可以防止共享可變狀態嗎?
- 14. 我們可以將成功函數移到.ajax之外嗎?
- 15. 當UITableView刷新完成後有可能獲得回調嗎?
- 16. 我可以通過c#代碼獲得防火牆的狀態嗎?
- 17. 我們可以獲得打印機的FileStream嗎?
- 18. 我們可以中斷已獲得鎖定的線程嗎?
- 19. 我們可以在Databinding的xml佈局中獲得Root View嗎?
- 20. 我可以訪問狀態中的其他狀態變量嗎?
- 21. 我可以使用SChannel獲得SOCKET嗎?
- 22. 我們如何可以調用角2.0中的ajax url節點
- 23. 我可以獲得PreparedStatement即將執行的完整查詢嗎?
- 24. 我們可以調整QR碼嗎?
- 25. 我可以從我的網站PHP上的用戶獲得完整地址嗎?
- 26. 我們可以通過CursorManager在Flex 4中獲得動態遊標嗎?
- 27. 我們可以動態生成軌道資源嗎?
- 28. 我們可以從Worldweatheronline api獲得多個天氣數據嗎?
- 29. 我們可以在C#中獲得一個canthrow語句嗎?
- 30. 我可以在成功回調中評估$ .ajax()調用的響應類型嗎?
這是由Matthew Flaschen提供的有趣答案,可能會幫助你 http://stackoverflow.com/questions/3163229/check-status-of-a-jquery-ajax-request –
首先關於你在說什麼框架關於。第二,我建議你發佈相關代碼,以便任何願意幫助你的人都能看到你在做什麼。所以要善良併發布你的代碼:) – Franco