代码之家  ›  专栏  ›  技术社区  ›  mck89

ExtJS缓存JSON请求

  •  1
  • mck89  · 技术社区  · 14 年前

    嗨,我正在使用extjs,我已经构建了一个包含可编辑单元格的网格。其中一个单元格必须是一个组合框,它从生成JSON数据的脚本中获取选项。网格和组合框单元格编辑器的代码可以工作,但我希望脚本的JSON请求在第一次缓存之后缓存,这是可能的吗?

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

    {
        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 回复  |  直到 14 年前
        1
  •  2
  •   mck89    14 年前

    我在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']
            })
        }
    }