Extjs缓存JSON请求

时间:2010-04-20 09:42:48

标签: javascript ajax json caching extjs

您好我正在使用Extjs,我已经构建了一个带可编辑单元格的网格。其中一个单元格必须是一个组合框,它从生成json数据的脚本中获取其选项。网格和组合单元格编辑器的代码有效但我希望第一次对脚本的json请求进行缓存,是否可能?

我编写了一些代码,这是我在网格构造函数中声明组合框列的部分:

{
    dataIndex:"authors_name",
    id:"authors_name",
    header:"Authors",
    editable:true,
    sortable:true,
    editor:{
        xtype:"combo",
        allowBlank:false,
        editable:false,
        forceSelection: true,
        displayField: 'authors_name',
        valueField: 'authors_id',
        store:new Ext.data.JsonStore({
            proxy:new Ext.data.HttpProxy({
                //This is the json request to cache
                url: 'index.php?load=authors'
            }),
            root: 'items',
            fields: ['authors_name','authors_id']
        })
    }
}

1 个答案:

答案 0 :(得分:2)

我通过在ext论坛上发帖找到答案,如果有人感兴趣,这是解决方案:

{
    dataIndex:"authors_name",
    id:"authors_name",
    header:"Authors",
    editable:true,
    sortable:true,
    editor:{
        xtype:"combo",
        allowBlank:false,
        editable:false,
        forceSelection: true,
        displayField: 'authors_name',
        valueField: 'authors_id',
        //Add mode and triggerAction properties to make it work locally
        mode:"local",
        triggerAction:"all",
        store:new Ext.data.JsonStore({
            proxy:new Ext.data.HttpProxy({
                url: 'index.php?load=categories&request=data&type=getAuthors'
            }),
            //Use the autoload property to do the request only one time
            autoLoad:true,
            root: 'items',
            fields: ['authors_name','authors_id']
        })
    }
}