Sencha Touch使用pageSize配置只加载几行

时间:2015-03-19 16:41:34

标签: javascript extjs sencha-touch sencha-touch-2 store

我有一个巨大的商店(数千行),为了让我的应用程序运行得更快,我想在首次打开应用时设置最大页面大小。然后只显示用户的其余数据向下滚动。以下是我到目前为止的情况:

    Ext.define("myApp.store.foo", {
    extend : 'Ext.data.Store',

    requires : ['Ext.data.Store', 'myApp.model.foo', 'Ext.data.reader.Xml'],

    alias: 'myApp.store.approachMainStore',


    config: {
    model : 'myApp.model.foo',
    storeId: 'mainStore',
    autoLoad: true,
    pageSize: 50, 

    proxy : {
        type : "ajax",
        url : 'resources/images/data/bar_all.xml',
        reader : {
            type : "xml",
            pageParam: 'page',
            clearOnPageLoad: false, 
            rootProperty : 'foo',
            record : 'bar'
        }
    }

    }
});

我正在使用xtype的List。但是当我运行我的应用程序时,一切正常,除了它加载所有数据之前我添加pageSize: 50,我错过了什么?

运行Sencha Touch 2.4.1

2 个答案:

答案 0 :(得分:0)

为了使分页工作,服务器端需要响应发送的参数。您必须使用动态生成的XML文件替换静态XML文件。该脚本需要识别分页参数(页面,限制,开始),除了数据之外,还必须返回totalcount

如果您不介意发送所有数据并且只想加快显示速度,请查看bufferedRenderer。

我刚刚注意到问题是关于sencha touch,我正在回答ExtJs 4.2。我不确定它是否对两者都有效。

答案 1 :(得分:0)

您应该在列表中使用ListPaging插件。

 {
        xclass: 'Ext.plugin.ListPaging',
        autoPaging: true,
        loadMoreText : 'Loading more',
        noMoreRecordsText : 'loaded'
 }

请查看sencha touch文档以获取更多信息。