我的网站上有主页,搜索文本和按钮以及5-6个标签页。根据搜索文本,选项卡将有独立的服务调用(对后端的API调用)。每个选项卡都有不同的数据。点击搜索后,我计划获取一个选项卡的数据并将其加载到UI中,并让其他选项卡的数据在后台加载。
我打算使用Spring MVC来完成这项任务,但我不确定spring是否支持这种并行服务调用。
是否还有其他框架可以做到这一点?
任何指针都会有所帮助。
答案 0 :(得分:0)
Spring MVC可以做到这一点。因为它可以处理并行请求(它不会照顾它们来自同一个客户端)。
"问题"是让客户端发送此并行请求(每个选项卡一个)。
答案 1 :(得分:0)
独立服务调用(对后端的API调用)
我想,你在谈论Ajax请求(HTTP)。
所有Java EE Web框架(当然还有SpringFramework MVC)都基于HttpServlet用法。您还可以阅读JSR-315 specification。
重要的是,每个servlet请求都在单独的线程中运行。 线程创建由servlet容器(tomcat,GlassFish,Jetty等)执行,因此您不需要手动执行。
所以答案肯定是肯定的。
关于其他框架,请查看the list in wiki。
UPD。 关于客户。根据定义,Ajax请求是异步的,因此很容易实现并行请求。
关于如何在客户端上进行并行调用的小而快速的示例(Jquery):
<script type="text/javascript">
$( document ).ready(function() {
$("#searchButton").click(function(){
var pattern = $("#searchText").val();
var processingMap = [
{tabid:"tab1", url:"./first-api-call"},
{tabid:"tab2", url:"./second-api-call"},
{tabid:"tab3", url:"./third-api-call"},
{tabid:"tab4", url:"./fourth-api-call"},
{tabid:"tab5", url:"./fifth-api-call"}
];
$(processingMap).each(function(index, element){
$.ajax(element.url,{
'type':'get',
'data':{'pattern':pattern},
'dataType':'text',
'success':function(data, textStatus, jqXHR){
setTabContent(element.tabid,data);
}
});
});
});
function setTabContent(tabid, content){
$('#'+tabid).text(content);
}
});
</script>
<input type="text" value="" id="searchText">
<input type="button" value="Search" id="searchButton">
<div id="tab1">tab1</div>
<div id="tab2">tab2</div>
<div id="tab3">tab3</div>
<div id="tab4">tab4</div>
<div id="tab5">tab5</div>