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