Extjs批量加载多个店铺

标签 extjs asp.net-web-api extjs4.2

故事是:

我有一个包含大约 10 个组合框的复杂表单。他们每个人都从不同的商店(Restful 商店)获取他们的绑定(bind)列表。例如:

  • /api/projects/activeyears
  • /api/用户/经理
  • /api/projects/availableDates
  • ...

我的服务器端技术 (Microsoft WebApi 2) 优雅地支持批处理请求(此处描述:http://bradwilson.typepad.com/blog/2012/06/batching-handler-for-web-api.html)。

我想知道我是否可以在 ExtJs 中做到这一点?如果是,请告诉我怎么做,但如果你的回答是否定的,你能给我一个替代解决方案吗?请求 10 个不同的商店会使表单加载速度太慢(当所有主要浏览器同时发出 2 个并行请求时,所以我应该等待至少 5 个串行请求)。

提前致谢

最佳答案

服务器端您可以使用批处理请求(聚合 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
    }
});

关于Extjs批量加载多个店铺,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22034925/

相关文章:

javascript - 在 Chrome 扩展中使用 JavaScript

c# - 单元测试 DelegatingHandler

c# - 使用 Http Patch 上的对象列表的最佳方式

extjs - 如何滚动到网格中的指定记录

javascript - 如何使用 ExtJS 4.2.1 下载 pdf 文件?

javascript - ExtJS 4.1 : Override mixins

javascript - 如何解决 ExtJS 4.2 缓冲存储中的 findRecord 问题

angularjs - Angular -> Web API 2 : "No ' Access-Control-Allow-Origin' header"

extjs - 以编程方式锁定 ExtJS 中的列

javascript - ExtJS:如何在另一个函数中调用一个函数?