0

我正在尝试找出将以下内容重新分解为 http asynch GET 场景的最佳方法,其中并行处理多个 http GET,然后 1)等待 http 响应返回并将相应的响应数据传递到视图中或 2) 立即返回视图,并在收到来自每个 http GET 的响应后以某种方式从我的控制器或回调异步更新视图中的 div。

这是我目前在同步处理的当前状态下所拥有的。

Spring MVC 控制器(当前):MyController.java

// Make multiple http calls...get the values from each call and pass into the view
@RequestMapping(value="", method = RequestMethod.GET)   
public String index(ModelMap model) {                       

    // http.getData calls apache HttpGet httpget = new HttpGet(url); ... to get values
    String values2 = http.getData(http://mysrv.com/data?stuff="1").toString(); 
    model.addAttribute("highchartvalues1", highchartvalues1);

    String values2 = http.getData(http://mysrv.com/data?stuff="2").toString();
    model.addAttribute("highchartvalues2", highchartvalues2);           

    return "index";
}

查看(.jsp/jstl):index.jsp

     // the values are actually consumed via highcharts

    <div id="highchart1">${highchartvalues1}</div>
    <div id="highchart2">${highchartvalues2}</div>
4

1 回答 1

0

对于选项 1。这个 Springsource 博客介绍了 Spring MVC 3.2 异步支持

Spring MVC 3.2 - 引入 Servlet 3 异步支持

对于选项 2。Spring 4.0(目前只有 M1 版本)将支持 websockets

Spring 4.0M1 Web Socket 支持

其他选项可能是不向视图返回任何内容并使用 javascript 轮询服务器以获取数据。数据准备好后,检索它并停止轮询。

我过去使用过的其他服务器推送技术是 Direct Web Remoting (DWR),但这可能需要大量工作。

于 2013-07-16T04:16:12.363 回答