【问题标题】:Refreshing a html table which has a progress bar刷新具有进度条的 html 表
【发布时间】:2014-11-29 10:04:51
【问题描述】:

我有一个要求,就是应该处于活动状态的表格列中的进度条。我将有很多引导进度条(比如 10 个),并且我在服务器端使用 spring mvc。现在的问题是我不知道如何在不刷新整个页面的情况下不断更新进度条(每 10 秒说一次),更准确地说,我希望每 10 秒刷新一次 html 表,它应该命中服务器和进度条的值应该是 应用于html表格内的进度条。

有人可以建议如何做到这一点,我真的需要帮助以及任何可以帮助我实现这一目标的示例链接。我是 不是 javascript/ajax 专家(我想它可以使用 ajax 来实现这一点,我也无法在谷歌中找到任何示例)。如果这是可以实现的 javascript(也不是 ajax)任何示例链接实际上都会对我有很大帮助。在此先感谢:)

【问题讨论】:

    标签: javascript html ajax spring-mvc progress-bar


    【解决方案1】:

    在 javascript 方面,您将有一个 js 函数进行 $.ajax 调用

    function getProgress(){
      $.ajax({
        url: "/myurl",
        success : function(data){
          //TODO here update your progressbar data=XX returned by spring
          if(data!=100){
             setTimeout(getProgress,10000);//reschedule again until job finished
          }
        }
      })
    }
    setTimeout(getProgress,10000);
    

    在弹簧侧:

    在控制器中,您将返回进度:

    @RequestMapping("/myurl")
    public @ResponseBody String getProgrees(){
      //TODO business logic
      return "XX";//0-100
    }
    

    【讨论】:

    • Jpprade 谢谢 :) 我会试试这个,让你知道,顺便说一句我有疑问?如果我在单个 html 页面中有大约 10 个进度条怎么办,我将如何返回 10 个值(来自 spring)并将其分配给进度条?
    • 在这种情况下,您可以返回 HashMap 而不是字符串。您的类路径中必须有 jackson(spring
    • 非常感谢 :) 你的代码工作得非常好 :) 你节省了我的时间 :) 顺便说一句,我从我的 spring 控制器返回了“10*10*10”并使用了 split( ) javascript 方法将其转换为字符串数组并将其分配给每个进度条!我只是想让它变得简单,所以选择了我的这个解决方案! :) 无论如何,非常感谢,我已将您的回答评为解决方案,祝您有美好的一天:)
    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 2017-10-14
    • 2018-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多