Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用Ajax和MVC更新progressbar_Javascript_Java_Ajax_Jsp_Spring Mvc - Fatal编程技术网

Javascript 如何使用Ajax和MVC更新progressbar

Javascript 如何使用Ajax和MVC更新progressbar,javascript,java,ajax,jsp,spring-mvc,Javascript,Java,Ajax,Jsp,Spring Mvc,作为JSP的新手,我正在努力让我的头脑了解一些事情。目前,我正在尝试创建一个页面,显示服务器上运行的任务的进度。我有一个未定义的运行任务的nr,我想在我的jsp页面上显示这些任务。我目前有一个工作解决方案,但“任务”div每3秒更新一次,这意味着条形图动画将重新启动,有时窗格会“闪烁” 有没有一种不需要覆盖所有html任务的非黑客方法 主要JSP: <div id="tasks"></div> .... <script> (function worker()

作为JSP的新手,我正在努力让我的头脑了解一些事情。目前,我正在尝试创建一个页面,显示服务器上运行的任务的进度。我有一个未定义的运行任务的nr,我想在我的jsp页面上显示这些任务。我目前有一个工作解决方案,但“任务”div每3秒更新一次,这意味着条形图动画将重新启动,有时窗格会“闪烁”

有没有一种不需要覆盖所有html任务的非黑客方法

主要JSP:

<div id="tasks"></div>
....
<script>
(function worker() {
    $.ajax({
        url : '/tasks/update_tasks',
        success : function(data) {
            $('#tasks').html(data);
        },
        complete : function() {
            setTimeout(worker, 3000);
        }
    });
})();

我不会在每次调用时检索任务列表并替换它们,而是更新它们的状态。您可以向控制器添加一个方法,该方法将任务列表作为JSON对象返回,然后(使用JQuery)遍历进度条并相应地更新百分比。我只更新它们的状态,而不是检索任务列表并在每次调用时替换它们。您可以向控制器添加一个方法,该方法将任务列表作为JSON对象返回,然后迭代进度条(使用JQuery)并相应地更新百分比。
<body>
<c:forEach var="task" items="${tasklist}">
    <h3>${task.name}</h3>
    <div class="progress">
        <div
            class="progress-bar progress-bar-success progress-bar-striped active"
            role="progressbar" aria-valuenow="${task.currentProgress}"
            aria-valuemin="0" aria-valuemax="100"
            style="width: ${task.currentProgress}%">${task.currentProgress}%</div>
    </div>
</c:forEach>
@RequestMapping(value="/tasks/update_tasks",method = RequestMethod.GET)
public ModelAndView retrieveUpdate() {
    ModelAndView modelAndView = new ModelAndView("/tasks/update_tasks");
    logger.debug("update tasks");
    //tasklist is an ArrayList<TaskBean>
    modelAndView.getModel().put("tasklist", tasksService.getTaskList());
    return modelAndView;
}
public class TaskBean {
    private String name;
    private String customerId;
    private int currentProgress;

    public TaskBean()
    {
        currentProgress = 0;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCustomerId() {
        return customerId;
    }
    public void setCustomerId(String customerId) {
        this.customerId = customerId;
    }
    public int getCurrentProgress() {
        return currentProgress;
    }
    public void setCurrentProgress(int currentProgress) {
        this.currentProgress = currentProgress;
    }



}