ExtJS学习02

数据代理proxy是进行数据读写的主要途径,通过代理操作数据进行CRUD
每一步操作全会得到唯一的Ext.data.Operation实例他包含了所有的请求参数
1.数据代理proxy目录结构
Ext.data.proxy.Proxy 代理类的根类(他分为客户端(Client)代理和服务器代理(Server))
    Ext.data.proxy.Client 客户端代理
        Ext.data.proxy.Memory 普通的内存代理 ----[重点]
        Ext.data.proxy.WebStorage 浏览器客户端存储代理
            Ext.data.proxy.SessionStorage 浏览器级别代理----[重点]
            Ext.data.proxy.LocalStorage 本地化的级别代理(不能夸浏览器)----[重点]
    Ext.data.proxy.Server 服务器端代理
        Ext.data.proxy.Ajax 异步加载的方式----[重点]
            Ext.data.proxy.Rest 一种特使的Ajax--[知道]
        Ext.data.proxy.JsonP 跨域交互的代理----[重点] 跨域是有严重的安全隐患的 extjs的跨域也是需要服务器端坐相应的配合
        Ext.data.proxy.Direct 命令.

        3+方式的代理


--------------------------------------------------------------------------------------------------------------------------------------------------------

内存代理:

//内存代理
(function(){
	Ext.onReady(function(){
		Ext.regModel("user",{
			fields:[
			        {name:'name',type:'string'},
			        {name:'age',type:'int'}
			        ]
		});
		//不用create方法,我们直接用代理来创建对象数据
		var userData=[
		              {name:'uspcat.com',age:1},
		              {name:'yuanfengchen',age:26}
		              ];
		
		//创建Model的代理类
		var memoryProxy=Ext.create("Ext.data.proxy.Memory",{
			data:userData,
			model:'user'
		});
		//就可以做CRUD了
		
		userData.push({name:'new uspcat.com',age:1});
		userData.push({name:'new 123456',age:1});
		//update
//		memoryProxy.update(new Ext.data.Operation({
//			action:'update',
//			data:'userData'
//		}),function(result){},this);
		//读
	memoryProxy.read(new Ext.data.Operation(),function(result){     //得到唯一的Ext.data.Operation实例他包含的所有请求参数
		//alert(result);
		var datas=result.resultSet.records;
		Ext.Array.each(datas,function(model){
			 alert(model.get('name'));
		});
	});
	});
})();


Ext.data.proxy.LocalStorage 本地化的级别代理(不能夸浏览器)----[重点](完成cookie的作用)

 (function(){
	Ext.onReady(function(){
		Ext.regModel("user",{
			fields:[
			        { name:'name',type:'string'}
			        ],
			        proxy: {
			            type: 'localstorage',  //固化在本地         //type:'sessionstorage'    单浏览器:适用于网吧模式,
			            id  : 'twitter-Searches'
			        }
		});
		
		//store来初始化数据
		var store=new Ext.data.Store({
			model:user
		});
		//想store里添加数据
		store.add({name:'uspcat.com'});
		//保存数据
		store.sync();
		//读取
		store.load();
		var msg=[];
		store.each(function(rec){
			msg.push(rec.get('name'));
		});
		alert(msg.join("\n"));
	});
})();


  Ext.data.proxy.Ajax 异步加载的方式----[重点]

(function(){
	Ext.regModel("person",{
		fields:[
		        {name:'name',type:'string'}
		        ]
	});
	var ajaxProxy=new Ext.data.proxy.Ajax({
		url:'person.jsp',
		model:'person',
		reader:'json',
		limitParam:'indexLimit'
		
	});
	
	ajaxProxy.doRequest(new Ext.data.Operation({
		 action:'read',
		    limit:10,
		    start:1,
		    
		    sorters:[
		             new Ext.util.Sorter({
		            	 property:'name',
			             direction:'ASC'
		             })
		             
		             ]
	}),function(o){
       
		var text = o.response.responseText;
        alert(Ext.JSON.decode(text)['name']);
	});
	
})();




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野火少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值