栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

设置AJAX进度栏

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

设置AJAX进度栏

基本上,您希望在HTTP会话中(或在涉及整个应用程序任务的Servlet上下文中)存储对任务的引用以及任务本身的进度。这样,您必须能够在每个HTTP请求上检索有关它的信息。

在Javascript中,您可以在特定的超时时间或特定的时间间隔后使用

setTimeout()
setInterval()
执行函数。您可以使用它重复触发Ajax请求,以请求进度的当前状态。一旦检索到状态,例如以最大值为100的整数(百分比)的形式,只需更新一些表示进度条的div和/或相应的HTML
DOM树中的百分比文本。

jQuery在引发ajaxical请求以及像这样遍历/操纵HTML
DOM树时非常有帮助。它最大程度地减少了代码冗长和跨浏览器兼容性的麻烦。

想象一下

doGet()
servlet的如下:

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.        }    });}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/485294.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号