`

extjs 初学 (三) proxy

 
阅读更多

数据代理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'},
				{anem:'age',type:'int'}
			]
		});
		//不用create方法 我们直接用proxy来创建对象数据
		var userData = [
			{name:'uspcat.com',age:1},
			{name:'yunfengcheng',age:26}
		];
		//创建model的代理类
		var memoryProxy = Ext.create("Ext.data.proxy.Memory",{
			data:userData,
			model:'user'
		})
		
		userData.push({name:'new uspcat.com',age:1});
		//update
		memoryProxy.update(new Ext.data.Operation({
			action:'update',
			data:userData
		}),function(result){},this);
		
		//就可以做CRUD了
		memoryProxy.read(new Ext.data.Operation(),function(result){
			var datas = result.resultSet.records;
			Ext.Array.each(datas,function(model){
				alert(model.get('name'));
			})
		});
	});
})();

 

//'sessionstorage' 将数据保存到本地并操作,将在关闭浏览器清空数据。
(function(){
	Ext.onReady(function(){
		Ext.regModel("user",{
			fields:[
				{name:'name',type:'string'}
			],
			proxy:{
				type:'sessionstorage',
				id  : 'twitter-Searches'
			}
		});
		//我们用store来初始化数据
		var store = new Ext.data.Store({
			model:user
		});
		store.add({name:'yunfengcheng'});
		store.sync();
		store.load();
		var msg = [];
		store.each(function(rec){
			msg.push(rec.get('name'));
		});
		alert(msg.join("\n"));
	})
})();
	

 

//将数据保存到本地(不能跨浏览器)并操作,关闭浏览器无影响。
//每次刷新页面 数据都会累加
(function(){
	Ext.onReady(function(){
		Ext.regModel("user",{
			fields:[
				{name:'name',type:'string'}
			],
			proxy:{
				type:'localstorage',
				id  : 'twitter-Searches'
			}
		});
		//我们用store来初始化数据
		var store = new Ext.data.Store({
			model:user
		});
		store.add({name:'uspcat.com'});
		store.sync();
		store.load();
		var msg = [];
		store.each(function(rec){
			msg.push(rec.get('name'));
		});
		alert(msg.join("\n"));
	})
})();
	

 

//异步请求服务器的数据 
(function(){
	Ext.onReady(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']); //将json字符串转换为对象
		});
	});
})();

 

//跨域请求数据
(function(){
	Ext.onReady(function(){
		Ext.regModel("person",{
			fields:[
				{name:'name',type:'string'}
			],
			proxy:{
				type:'jsonp',
				url:'http://www.uspcat.com/extjs/person.php'
			}
		});
		var person = Ext.ModelManager.getModel('person');
		person.load(1,{
			scope:this,
			success:function(model){
				alert(model.get('name'));
			}
		});
	})
})();

 

分享到:
评论

相关推荐

    Extjs4.1 小例子(适合extjs初学者学习使用)

    对于初学者来说,理解并掌握ExtJS 4.1的基础和特性是非常有益的。 标题中的"Extjs4.1 小例子"意味着这个压缩包包含了一些基础的示例代码,旨在帮助初学者快速入门。通过这些小例子,你可以了解如何使用ExtJS 4.1来...

    ExtJs增删改查实例,献给初学者(佳家记账)

    这个"ExtJs增删改查实例,献给初学者(佳家记账)"的项目是专门为初学者设计的,旨在帮助他们理解如何使用ExtJS进行基本的数据操作,如添加、删除、修改和查询。在Web开发中,这些功能通常被称为CRUD(Create, Read, ...

    extjs4中文视频下载地址

    该示例将帮助初学者了解如何创建基本的 ExtJS 项目结构,配置必要的开发环境以及如何编写第一个 ExtJS 应用程序。 #### 二、ExtJS 4.0 新特性 - **模块化架构**:ExtJS 4.0 引入了模块化架构,使得开发者可以按需...

    extjs后台交互完整示例

    在ExtJS中,我们通常使用Proxy来处理与服务器的通信,如AjaxProxy或JsonPProxy,它们分别对应于Ajax请求和JSONP跨域请求。这些代理可以配置URL、请求方法、参数等,以便从服务器获取或发送数据。 "src"文件夹很可能...

    ExtJs4.0 手册中文版

    通过学习这些资料,开发者可以掌握ExtJS 4.0的核心概念,如Model(模型)、View(视图)、Controller(控制器)的MVC模式,了解Store(数据存储)和Proxy(数据代理)的概念,以及如何利用强大的API来构建功能强大的...

    EXTJS Grid总结例子

    EXTJS Grid是一款强大的数据展示组件,广泛应用于Web应用开发中,尤其在数据密集型界面设计时,EXTJS Grid以其...对于EXTJS初学者来说,这是一个很好的实践平台,而对于有经验的开发者,这则是一份有价值的参考资料。

    EXTJS 3.04包/中文版API/入门学习资料

    本文将深入探讨EXTJS 3.04的相关知识点,帮助初学者快速入门。 一、EXTJS 3.04组件系统 EXTJS的核心在于其组件化的设计,这使得开发者可以轻松创建复杂的用户界面。主要组件包括: 1. 表单组件:如文本框、密码框...

    extjs 学习心得笔记

    在探讨《ExtJS学习心得笔记》这一主题时,我们不仅会深入理解ExtJS框架的...通过以上学习心得与笔记要点,初学者可以系统地掌握ExtJS框架的核心知识,避免在学习过程中走弯路,从而更快地成长为一名熟练的ExtJS开发者。

    extjs4中文文档

    6. **Ajax和数据管理**:EXTJS4内置了强大的Ajax请求处理和数据管理机制,通过Ext.data.Proxy和Ext.data.Store可以轻松处理远程数据请求和本地数据存储。 7. **可访问性**:EXTJS4注重无障碍性,遵循WCAG 2.0标准,...

    ExtJs实例,富客户端技术经典

    这个"ExtJs实例,富客户端技术经典"的资源对于初学者来说是一个很好的学习材料,因为它的易理解性可以帮助快速上手。 首先,让我们深入了解一下ExtJS的核心概念: 1. **组件模型**:ExtJS采用组件化开发模式,将...

    EXTJS4+STRUTS2+JAVA增删改查

    同时,需要在EXTJS4中设置适当的proxy,如Ajax proxy,指定URL到STRUTS2 ACTION,并定义对应的读者(reader)和写入者(writer)来处理数据的序列化和反序列化。 这个例子为初学者提供了一个很好的起点,了解EXTJS4...

    extjs教程word版本

    这有助于初学者理解框架的工作原理。 2. **组件系统**:ExtJS的核心是其强大的组件系统,包括按钮、表格、面板、表单、树形视图等。教程可能会详细解释如何创建、配置和使用这些组件,以及如何利用布局管理器组织...

    extjs3中引入地图

    本资源提供的实例是关于如何在EXTJS3中集成百度地图的教程,适合初学者和有一定EXTJS基础的开发者学习。 首先,我们要了解EXTJS中的组件系统。EXTJS允许开发者通过组合不同的组件来创建复杂的用户界面,如表格、...

    extjs4学习资源大全

    在实际项目中,你可能还会遇到数据加载、异步通信(使用Ajax)和状态管理等问题,ExtJS4提供了解决这些问题的强大工具,如Store和Proxy。同时,不要忽视性能优化,合理使用组件配置和内存管理技巧,可以使你的应用...

    EXTJS 3[1].0 API中文文档

    3. **数据绑定**:EXTJS 使用Model、Store 和 Proxy 模块实现数据绑定,允许将后端数据无缝地展示在前端组件上。Store 负责管理数据,Proxy 负责与服务器进行数据交换,Model 定义数据结构和验证规则。 4. **Ajax...

    extjs+demo+api

    ExtJS 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件...无论你是初学者还是经验丰富的开发者,这些资源都将帮助你更好地掌握ExtJS,开发出高效且用户体验优秀的Web应用。

    Extjs2.02 Gridpanel

    EXTJS GridPanel 是EXTJS库中的核心组件之一,尤其在EXTJS 2.02版本中,它提供了强大的表格展示和交互功能,对于初学者来说极具学习价值。GridPanel不仅能够处理基本的表格操作,如单选、多选、排序、改变列宽等,还...

    ExtJs各个版本2-6API汇总.zip

    还引入了Ajax proxy,改进了数据处理,并对性能进行了优化。3.x系列是ExtJS广泛使用的版本之一。 3. **ExtJS 4.x API**: ExtJS 4引入了Model、Store和Controller的概念,强化了MVC(模型-视图-控制器)架构,使得...

    ExtJS4 doc文档

    ExtJS4是一款强大的JavaScript库,专门用于构建富客户端应用程序。这个文档集合包含了关于ExtJS4的详尽资料,是开发者学习和深入理解该...无论你是初学者还是经验丰富的开发者,这套文档都会是你编程旅程中的得力助手。

    php_extjs 增删改查

    在这个项目中,可能使用了ExtJS的Model、Store和Proxy等核心概念: 1. **Model**:定义了数据结构和验证规则,与后台PHP模型相对应。 2. **Store**:存储和管理数据集,它可以连接到Proxy,从服务器获取或提交数据...

Global site tag (gtag.js) - Google Analytics