[ExtJS] store与localstorage

ExtJS框架中,Store的代理方式有多种

像是Ajax,内存代理memory,本地代理localstorage、sessionStorage等

这里主要介绍下使用本地数据Ext.data.proxy.LocalStorage

==============================================================================================

1.创建一个store,指定下代理为localstorage

Ext.define('Store名',{
    extend:'Ext.data.Store',
    fields: ["ids", "name", "age"],//注意此ids不能为id关键字
    proxy: {
        type: 'localstorage',
        id  : 'items'
    }
})

这里的id就是浏览器里localstorage的key值


一般是以 key-序号 作为key

2.为store增添数据

store.add(数据对象);
store.sync();//保存数据 进行这步操作,浏览器的localstorage里才会刷新

注意:

使用store.sync()时,ext内置处理机制会为localstorage增添 三种值

第一个:id-序号:增添的数据

第二个:id:1,2,3...n

第三个:id-counter:总条数 (非必须)

ForExample

我们执行了一次

store.add({name: "张s", age: 22 });
store.sync();


这里的items就是我们proxy里配置的id的value

若是,再操作一次 localstorage就有两条


==============================================================================================

若是,想让把服务器里的数据data,付给localstorage

可以使用for循环

for(var i=0;i<data.length;i++){
  store.add(data[i])
}
store.sync();

注意:

data数据里不要有id这个关键字!!

若项目返回的数据恰好是id这个key,在fields里用convert

例如我们执行

store.add({id:xx,name:'Tom',age:20}); //使用了id关键字
store.sync();

发现,localstorage并无变化


而当我们不使用关键字id

store.add({name:'Tom',age:20}); //不使用关键字id
store.sync();

保存成功


猜你喜欢

转载自blog.csdn.net/ZYD45/article/details/80350299
今日推荐