Extjs4 ExtJS-localStorage

Extjs4 ExtJS-localStorage,extjs4,local-storage,Extjs4,Local Storage,我有“电影”模型,并将数据保存在Ext.data.Store中。电影显示在gridPanel中。给出搜索参数并单击按钮后,将重新加载存储 现在,我正在尝试使用本地存储。而是应该将数据保存在侦听器的函数中: listeners: { 'click': function() { movieDataStore.sync(); var textValue = Ext.getCmp("searc

我有“电影”模型,并将数据保存在Ext.data.Store中。电影显示在gridPanel中。给出搜索参数并单击按钮后,将重新加载存储

现在,我正在尝试使用本地存储。而是应该将数据保存在侦听器的函数中:

listeners: {
                'click': function() {
                    movieDataStore.sync();
                    var textValue = Ext.getCmp("searchFieldId").getValue();

                    movieDataStore.load({
                        params : {
                            start : 0,
                            limit : 25,
                            t : textValue
                        }
                    });
                }
            }
我该怎么做


更新V1

如果我要使用Ext.state.LocalStorageProvider,我应该像这样初始化缓存变量:

        var movieLocalCacheStore = Ext.state.LocalStorageProvider.create(); 

    var movieGridPanel = Ext.create('Ext.grid.Panel', {
        store : movieDataStore,

        tbar : [ 'Search', {
            xtype : 'textfield',
            name : 'searchField',
            id: 'searchFieldId',
            emptyText : 'Put movie title here',
            hideLabel : true,
            width : 200
        }, {
            xtype : 'button',
            text : 'Search',
            tooltip : 'Search for movie',
            listeners: {
                'click': function() {
                    var textValue = Ext.getCmp("searchFieldId").getValue();

                    movieDataStore.load({
                        params : {
                            start : 0,
                            limit : 25,
                            t : textValue
                        }
                    });
                    movieDataStore.sync();
                    movieGridPanel.getView().refresh();

                    //localStorage.setItem(textValue, movieDataStore.getAt(0));
                    movieLocalCacheStore.set(textValue, movieDataStore.getAt(0));

                }
            }
        } ]
    });
?

我有一个名为“电影模型”的模型。获取对象的正确方法是
movieDataStore.getAt(0)


如何检查是否有缓存的搜索结果(并加载到movieDataStore/movieGridPanel)?

您可以通过调用静态创建方法创建本地存储的实例。以下是您如何做到这一点:

var myLocalStore = Ext.state.LocalStorageProvider.create();  
可以使用和方法存储和检索值。以下是一个例子:

myLocalStore.set('srhTxt',value);

如果有许多参数,可以将它们组合成一个对象并存储。

最后,我使用localStorage变量解决了这个问题:

var textValue = Ext.getCmp("searchFieldId").getValue();                 

    var tmpRecord = localStorage.getItem(textValue);
    if(tmpRecord != null) {
                 ...
    } else {
        var movieRecord = {
                title : data.Title,
                year : data.Year,
                genre : data.Genre,
                plot : data.Plot,
                poster : data.Poster
            };

        localStorage.setItem(textValue, JSON.stringify(movieRecord));
        ...
    }

谢谢,@Abdel Olakara的解释。我已经使用
LocalStorageProvider