Extjs网格无法使存储缓冲区正常工作

Extjs网格无法使存储缓冲区正常工作,extjs,Extjs,我有一个很大的数据集(超过8万条记录)。所以我试图实现缓冲区,但我无法让它工作。如果我包括缓冲配置,我得到的错误对象不支持此属性。当我删除它时,它可以正常工作,但加载数据当然要花很长时间 这是我的密码 Ext.Loader.setConfig({ enabled: true, disableCaching: false }); Ext.require(['Ext.data.*', 'Ext.grid.*', 'Ext.grid.plugin.BufferedRender

我有一个很大的数据集(超过8万条记录)。所以我试图实现缓冲区,但我无法让它工作。如果我包括缓冲配置,我得到的错误对象不支持此属性。当我删除它时,它可以正常工作,但加载数据当然要花很长时间

这是我的密码

Ext.Loader.setConfig({
    enabled: true,
    disableCaching: false
});

Ext.require(['Ext.data.*', 'Ext.grid.*',
    'Ext.grid.plugin.BufferedRenderer', 'Ext.ux.grid.FiltersFeature']);

Ext.define('Borrower', {
    extend: 'Ext.data.Model',
    fields: [{
        name: 'Name',
        type: 'string'
    }, {
        name: 'Num',
        type:
            'string'
    }]
});

Ext.onReady(function () {

    var store = Ext.create('Ext.data.Store', {
        autoLoad: false,
        model: 'Borrower',
        pageSize: 100,
        buffered: true, // getting error object doestn support this property in extjs-all-debug.js
        proxy: {
            type: 'rest',
            url: 'borrBuff.xsp/byName',
            reader: {
                type: 'json',
                root: 'items'
            }
        }

    });

    var filters = {
        ftype: 'filters',
        encode: false,
        local: true
    };

    var grid = Ext.create('Ext.grid.Panel', {
        id: 'testgrid',
        store: store,
        features: [filters],
        plugins: 'bufferedrenderer',
        columns: [{
            text: 'Borr Name',
            dataIndex: 'Name',
            filterable: true
        }, {
            text: 'Number',
            dataIndex: 'Num'
        }]
    });

})
单击按钮在窗口中打开网格

var grid = Ext.getCmp('testgrid');
var win = Ext.create('Ext.Window', {
    title: 'Grid Filters Example',
    height: 400,
    width: 700,
    modal: true,
    layout: 'fit',
    items: grid
}).show();
grid.getStore().load();

只是不知道我做错了什么。感谢您对解决此问题的帮助。

是否有任何理由从服务器获取所有数据

我建议使用所有的优点,速度是第一位的(还有一些缺点)。如果您选择使用无限网格,它将运行良好。事实上,无限网格背后的基本思想是(换句话说,数据分页)


过滤在这种情况下不会出现任何问题,请参阅。它通常由服务器处理,而服务器是为完成此类任务而构建的。

您使用的是ExtJS 4.2吗?是的。在调试错误时,我注意到的另一件事是在线filterBy()。如果删除过滤器,则不再看到错误。但是缓冲区仍然不起作用,我确实需要过滤器,thx。我把它呈现为一个对话框列表,用户可以在其中选择多个项目。无限滚动看起来比分页更好。此外,我不确定页面过滤是否对整个商店有效。@lense:我用你的新输入澄清了我的答案。谢谢Peter Ivan,我正在寻找列过滤。但是这个例子很有用,我会尝试一下。