1

我有一个大约 10 列的网格面板,在我的数据存储中大约有 1000 条记录。因为可见记录的数量少于数据存储记录的数量,所以我在网格面板中得到了一个垂直滚动条。当网格在 Internet Explorer 9 或 Google Chrome 中显示时,当我使用鼠标滚轮时,垂直滚动条移动得很好而且很快。但在 Mozilla Firefox 中,它的滚动速度非常慢。每一次完整的手指拉动只允许看到一个额外的记录/行,或者更少。

我怎样才能解决这个问题?

我正在使用 Mozilla Firefox 14.0.1

下午 5:21 更新.. 分页工具栏未显示

    var store = new Ext.data.Store({

        pageSize: 50,
        // allow the grid to interact with the paging scroller by buffering
        buffered: true,
        // never purge any data, we prefetch all up front
        purgePageCount: 0,
        model: 'Project',
        //proxy: {
        //    type: 'memory'
        //},

        proxy: new Ext.ux.AspWebAjaxProxy({
            url: '/Controls/ProjectList/ProjectListService.asmx/GetProjectList',
            actionMethods: {
                create: 'POST',
                destroy: 'DELETE',
                read: 'POST',
                update: 'POST'
            },
            reader: {
                type: 'json',
                model: 'Project',
                root: 'd'
            },
            headers: {
                'Content-Type': 'application/json; charset=utf-8'
            }
        }),
        autoLoad: true
    });



Ext.define('Ext.ux.AspWebAjaxProxy', {
    extend: 'Ext.data.proxy.Ajax',
    require: 'Ext.data',

    buildRequest: function (operation) {
        var params = Ext.applyIf(operation.params || {}, this.extraParams || {}),
                                request;
        params = Ext.applyIf(params, this.getParams(params, operation));
        if (operation.id && !params.id) {
            params.id = operation.id;
        }

        params = Ext.JSON.encode(params);

        request = Ext.create('Ext.data.Request', {
            params: params,
            action: operation.action,
            records: operation.records,
            operation: operation,
            url: operation.url
        });
        request.url = this.buildUrl(request);
        operation.request = request;
        return request;
    }
});
4

2 回答 2

3

为了回答您的第一个问题,Firefox 从版本 13 开始将“平滑滚动”作为默认配置。ExtJS 4.1.0 没有考虑到这一点,但这是在 4.1.1 中处理的。您必须升级才能处理它,或者您可以将它从 4.1.1 代码中拼凑出来。

看看这个

于 2012-08-27T23:27:39.777 回答
1

中的缓冲区设置Ext.data.Store可能会有所帮助。

var store = Ext.create('Ext.data.Store', {
    id: 'store',
    pageSize: 50,
    // allow the grid to interact with the paging scroller by buffering
    buffered: true,
    // never purge any data, we prefetch all up front
    purgePageCount: 0,
    model: 'ForumThread',
    proxy: {
        type: 'memory'
    }
});

http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/buffer-grid.html

我已经在 Firefox 上测试了该示例,它比 chrome 慢一点,但可以使用。

如果它仍然太慢,也许应该将分页添加到网格中。

http://dev.sencha.com/deploy/ext-4.0.0/examples/grid/paging.html

于 2012-08-27T21:59:26.890 回答