Extjs Grid无法加载大数据

时间:2013-03-30 10:16:09

标签: java jsp extjs

我需要在LiveGride中显示大约500行.My函数大约需要6分钟 重新调整Json Array.Grid显示加载大约2分钟然后停止。 当我使用调试模式解决时,网格首先失败,但该函数仍在运行并返回最后一次。

该程序正常运行,数据较少

var Grid = new Ext.ux.grid.livegrid.EditorGridPanel

({
title: 'Report Details',
id: 'GridId',
ds: Store,
cm: CM,

view: new Ext.ux.grid.livegrid.GridView({
nearLimit: 3,

loadMask: {
            msg: 'Loading Records PleaseWait.....!'
        },

emptyText: 'No Records Found'
    }),

stripeRows: true,

border: true,
    width: screen.width - 90,
    height: 340,

loadMask: {
        msg: ' Loading Records Please Wait......!'
    },
    clicksToEdit: 1,
    plugins: filters,

selModel: new Ext.ux.grid.livegrid.RowSelectionModel(),

});

1 个答案:

答案 0 :(得分:1)

我应用了Ext.data.HttpProxy.doRequest函数的覆盖来接受来自Store.load(params)和存储创建的超时属性。

    Ext.override(Ext.data.HttpProxy, {
    doRequest: function (action, rs, params, reader, cb, scope, arg) {
        var timeout = 30000;
        if (scope.timeout > 0) timeout = scope.timeout;
        if (arg.timeout > 0) timeout = arg.timeout;
        var o = {
            method: (this.api[action]) ? this.api[action]['method'] : undefined,
            request: {
                callback: cb,
                scope: scope,
                arg: arg
            },
            reader: reader,
            callback: this.createCallback(action, rs),
            scope: this,
            timeout: timeout
        };

        // If possible, transmit data using jsonData || xmlData on Ext.Ajax.request (An installed DataWriter would have written it there.).
        // Use std HTTP params otherwise.
        if (params.jsonData) {
            o.jsonData = params.jsonData;
        } else if (params.xmlData) {
            o.xmlData = params.xmlData;
        } else {
            o.params = params || {};
        }
        // Set the connection url.  If this.conn.url is not null here,
        // the user must have overridden the url during a beforewrite/beforeload event-handler.
        // this.conn.url is nullified after each request.
        this.conn.url = this.buildUrl(action, rs);

        if (this.useAjax) {

            Ext.applyIf(o, this.conn);

            // If a currently running read request is found, abort it
            if (action == Ext.data.Api.actions.read && this.activeRequest[action]) {
                Ext.Ajax.abort(this.activeRequest[action]);
            }
            this.activeRequest[action] = Ext.Ajax.request(o);
        } else {
            this.conn.request(o);
        }
        // request is sent, nullify the connection url in preparation for the next request
        this.conn.url = null;
    }
});