故事是:
我有一个复杂的表格,大约有10个组合框。他们每个人都从不同的商店(Restful)获取他们的绑定列表。例如:
我的服务器端技术(Microsoft WebApi 2)优雅地支持批量请求(在此处描述:http://bradwilson.typepad.com/blog/2012/06/batching-handler-for-web-api.html)。
我想知道我是否可以在ExtJs中执行此操作?如果是,请告诉我如何,但如果你的答案是否定的,你能给我一个替代解决方案吗?请求10个不同的商店使表单加载太慢(当所有主要浏览器同时发出2个并行请求时,所以我应该等待至少5个串行请求)。
提前致谢
答案 0 :(得分:2)
服务器端您可以使用批量请求(聚合2 x 5个请求或3 + 3 + 4个)。理想情况下,您会返回类似的内容:
{
success: true,
activeyears: [ ... ],
managers: [ ... ],
availableDates: [ ... ],
...
}
从ExtJS的角度来看,这是一个没有连接到商店或代理的Ajax请求。
在success
你有类似的东西:
Ext.Ajax.request({
url: '/api/myAggregatedRequest1',
method: 'GET',
success: function (result, request) {
var jsonResp;
jsonResp = Ext.decode(result.responseText);
if (jsonResp.success) {
myActiveYearsStore.loadData(jsonResp.activeyears);
myManagersStore.loadData(jsonResp.managers);
myAvailableDatesStore.loadData(jsonResp.availableDates);
// ... trigger some event
} else {
// ... error handling
}
},
failure: function (result, request) {
// ... error handling
}
});