1
A
回答
5
基本上,您希望存儲對任務的引用,並且本身也會在HTTP會話中(或者在涉及應用程序範圍任務的Servlet上下文中)存儲它的進度。這樣,您必須能夠在每個HTTP請求中檢索有關它的信息。
在JavaScript中,您可以使用setTimeout()
或setInterval()
在特定超時或特定間隔後執行函數。您可以使用它來重複觸發Ajax請求以請求進度的當前狀態。一旦檢索到狀態,例如在最大值爲100(百分比)的整數的味道中,只需更新表示進度條的一些div和/或相應HTML DOM樹中的百分比文本。
jQuery在解決Ajax請求和遍歷/操縱HTML DOM樹時非常有用。它最大限度地減少了代碼冗長和交叉瀏覽器兼容性問題。
試想一下,該servlet看起來像這樣的doGet()
:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String processId = "longProcess_" + request.getParameter("processId");
LongProcess longProcess = (LongProcess) request.getSession().getAttribute(processId);
int progress = longProcess.getProgress();
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(String.valueOf(progress));
}
然後你可以使用它像如下:
function checkProgress() {
$.getJSON('progressServlet?processId=someid', function(progress) {
$('#progress').text(progress + "%");
$('#progress .bar').width(progress);
if (parseInt(progress) < 100) {
setTimeout(checkProgress, 1000); // Checks again after one second.
}
});
}
相關問題
- 1. 設置進度,進度條
- 2. 如何設置進度條
- 3. 如何設置進度條
- 4. 如何設置進度條
- 5. 設置HTML進度條
- 6. Flex進度條設置
- 7. 如何設置進度條?
- 8. $ .ajax JQuery進度條
- 9. jquery ajax進度條
- 10. 使用jQuery Ajax配置HTML5進度條
- 11. 限制Ajax進度條
- 12. 進度條和jquery ajax
- 13. 基於Ajax的進度條
- 14. ajax進度條zend框架
- 15. ajax進度條不工作?
- 16. PHP和Ajax進度條
- 17. Laravel 5.1 - 如何設置進度條
- 18. 進度條始終設置爲最大
- 19. 如何設置進度條背景
- 20. 設置進度條的固定值
- 21. Python四步設置與進度條
- 22. Visual Basic 2010 - 進度條 - 設置回0
- 23. 如何在AjaxUpload上設置進度條?
- 24. 如何在android中設置進度條?
- 25. 設置進度條爲垂直
- 26. 如何設置這樣的進度條,並在java中設置它的進度
- 27. 如何使用getRepeaterItem設置進度條的進度?
- 28. 根據進度值設置進度條的寬度並根據設備屏幕
- 29. 多個ajax jsonp進程的進度條
- 30. 進度條設計模式?
真棒!我會給它一個去看看我想出了什麼。 – Julio 2010-09-30 12:14:35
不客氣。 – BalusC 2010-09-30 12:19:44
對不起,這不在它的servlet中,它在一個單獨的java類。然而,我們有一個請求類,它使得來自tomcat的請求能夠完全回退一些XML並將其發佈到XSL樣式表中。 – Julio 2010-09-30 12:50:22