首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

ExtJS 4.2 课程-05:客户端代理(proxy)

2014-01-05 
ExtJS 4.2 教程-05:客户端代理(proxy)使用load方法会将所有的数据都加载到Store中,如果我们需要进行查询指

ExtJS 4.2 教程-05:客户端代理(proxy)

使用load方法会将所有的数据都加载到Store中,如果我们需要进行查询指定的数据,就要用到filter方法了。

另外,我们还可以使用多个过滤条件:

更新操作:

//得到第一个person对象var person = personStore.first();//修改名字字段person.set('name', 'qeefee.com');//保存到本地personStore.sync();

删除操作:

//得到第一个person对象var person = personStore.first();//移除personStore.remove(person);//保存personStore.sync();

?

SessionStorageProxy

SessionStorageProxy 的用法与LocalStorageProxy 的用法基本一致,我们这次在Model中添加proxy 的配置项:

//定义数据模型Ext.define('Person', {    extend: 'Ext.data.Model',    fields: ['name', 'age'],    proxy: {        type: 'sessionstorage',        id: 'myProxyKey'    }});

在Model中加入代理配置以后,我们就不需要单独的定义代理对象了,可以直接使用Store来对其进行操作:

//定义Storevar personStore = Ext.create("Ext.data.Store", {    model: 'Person'});//添加数据personStore.add({ name: 'www.qeefee.com', age: 1 });personStore.add({ name: 'qf', age: 26 });personStore.add({ name: 'qifei', age: 26 });personStore.sync();//读取数据personStore.load();var msg = [];personStore.each(function (person) {    msg.push(person.get('name') + ' ' + person.get('age'));});Ext.MessageBox.alert('提示', msg.join('<br />'));

?

MemoryProxy

MemoryProxy 是将数据存储在内存中的,它只在当前页生效,如果关闭或刷新页面,所有数据都将丢失。在使用MemoryProxy 的时候,我们需要为Store指定一个数据集(类似于缓存),store 将通过代理对这个数据集进行操作:

//定义数据模型Ext.define('Person', {    extend: 'Ext.data.Model',    fields: ['name', 'age']});var 

data = { Users: [ { name: 'www.qeefee.com', age: 1 }, { name: 'qeefee'

, age: 1 }    ]}//定义Storevar personStore = Ext.create("Ext.data.Store", {    model: 'Person',    data: data.Users,    proxy: {        type: 'memory'    }});

在代码中高亮显示的部分,就是为store设置的缓存。当personStore 定义的时候,它就会自动的将数据加载到Store中,所以在我们访问数据的时候不需要再调用load方法了:

//读取数据var msg = [];personStore.each(function (person) {    msg.push(person.get('name') + ' ' + person.get('age'));});Ext.MessageBox.alert('提示', msg.join('<br />'));

和上两个的操作基本一致,我们可以通过下面的代码添加一行新数据:

personStore.add({ name: 'qifei', age: 26 });personStore.sync();

本节内容主要介绍了浏览器端代理的用法,在下节内容中,我将介绍如何使用服务器端代理进行数据的操作。

热点排行