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

extjs4 各种proxy reader详细运用

2012-07-24 
extjs4 各种proxy reader详细使用ExtJS提供的数据代理主要分为两大类:1.客户端代理 (Ext.data.proxy.Clien

extjs4 各种proxy reader详细使用

ExtJS提供的数据代理主要分为两大类:

1.客户端代理 (Ext.data.proxy.Client)

2.服务器代理(Ext.data.proxy.Server)

这两个类 都继承自 Ext.data.proxy.Proxy ,

客户端代理主要包括:Memory?? WebStorage?? SessionStorage?? LocalStorage

服务器端代理包括:? Ajax?? Rest? JsonP

?

DOM Storage 分为两类, sessionStorage 和 localStorage

sessionStorage: 用于存储与 当前浏览器窗口关联的数据.窗口关闭后,sessionStorage中数据将无法使用

localStorage:????? 用于长期存储数据.窗口关闭,数据仍然可以访问, 所有浏览器窗口可以共享 数据.

?

下面看看一个 localStorage的例子


extjs4 各种proxy reader详细运用

说明,localstorage 是长期存储数据的,即使关闭浏览器,数据仍然存在.

下面还要说明一点:LocalStorage代理如果没有指定id,则会使用 store的id,如果两个都没指点,那么就会抛出异常

?

?

Ext.data.proxy.SessionStorage

效果:extjs4 各种proxy reader详细运用

Ext.define('Search', {
?????????????? fields: ['id', 'query'],
?????????????? extend: 'Ext.data.Model',
?????????????? proxy: {
?????????????????? type: 'sessionstorage',
?????????????????? id: 'twitter-Searches'
?????????????? }
?????????? });

?????????? var store = new Ext.data.Store({
?????????????? model: "Search"
?????????? });

?????????? //添加数据
?????????? store.add({ query: 'Sencha Touch' });
?????????? store.add({ query: 'Ext JS' });
?????????? //保存数据
?????????? store.sync();

?????????? //读取数据
?????????? store.load();

?????????? var msg = [];
?????????? store.each(function (data) {
?????????????? msg.push(data.get('id') + '-' + data.get('query'));

?????????? })
?????????? alert(msg.join('\n'));

?

;

当关闭浏览器,从新浏览此页面时:extjs4 各种proxy reader详细运用.

里面的数据没有增加,验证了刚才的说法.

服务器端代理

服务器端代理会访问远程服务器资源,适合于长期保存重要的数据资料.

下面是 分页参数

extjs4 各种proxy reader详细运用

//定义User模型

?

排序参数

参数信息:extjs4 各种proxy reader详细运用

只需更改 上面程序的 operation配置即可

?

?

?

?

?

?

读取复杂的json数据:

extjs4 各种proxy reader详细运用

?

?

数组读取器

extjs4 各种proxy reader详细运用

?

?

//定义用户模型          Ext.regModel('User', {              fields: ['id', 'name'],              proxy: //定义代理              {              type: 'memory'          }      })      var store = new Ext.data.Store({          autoLoad: true,          data: [{ id: 12, name: 'ss' }, { id: 11, name: 'zz'}],          model: 'User'      })      //遍历store中元素      var msg = ['遍历:'];      store.each(function (res) {          msg.push('id=' + res.get('id') + 'name=' + res.get('name'));      })      alert(msg.join('\n'));
?

?

热点排行