数据代理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')); } }); }) })();
相关推荐
对于初学者来说,理解并掌握ExtJS 4.1的基础和特性是非常有益的。 标题中的"Extjs4.1 小例子"意味着这个压缩包包含了一些基础的示例代码,旨在帮助初学者快速入门。通过这些小例子,你可以了解如何使用ExtJS 4.1来...
这个"ExtJs增删改查实例,献给初学者(佳家记账)"的项目是专门为初学者设计的,旨在帮助他们理解如何使用ExtJS进行基本的数据操作,如添加、删除、修改和查询。在Web开发中,这些功能通常被称为CRUD(Create, Read, ...
该示例将帮助初学者了解如何创建基本的 ExtJS 项目结构,配置必要的开发环境以及如何编写第一个 ExtJS 应用程序。 #### 二、ExtJS 4.0 新特性 - **模块化架构**:ExtJS 4.0 引入了模块化架构,使得开发者可以按需...
在ExtJS中,我们通常使用Proxy来处理与服务器的通信,如AjaxProxy或JsonPProxy,它们分别对应于Ajax请求和JSONP跨域请求。这些代理可以配置URL、请求方法、参数等,以便从服务器获取或发送数据。 "src"文件夹很可能...
通过学习这些资料,开发者可以掌握ExtJS 4.0的核心概念,如Model(模型)、View(视图)、Controller(控制器)的MVC模式,了解Store(数据存储)和Proxy(数据代理)的概念,以及如何利用强大的API来构建功能强大的...
EXTJS Grid是一款强大的数据展示组件,广泛应用于Web应用开发中,尤其在数据密集型界面设计时,EXTJS Grid以其...对于EXTJS初学者来说,这是一个很好的实践平台,而对于有经验的开发者,这则是一份有价值的参考资料。
本文将深入探讨EXTJS 3.04的相关知识点,帮助初学者快速入门。 一、EXTJS 3.04组件系统 EXTJS的核心在于其组件化的设计,这使得开发者可以轻松创建复杂的用户界面。主要组件包括: 1. 表单组件:如文本框、密码框...
在探讨《ExtJS学习心得笔记》这一主题时,我们不仅会深入理解ExtJS框架的...通过以上学习心得与笔记要点,初学者可以系统地掌握ExtJS框架的核心知识,避免在学习过程中走弯路,从而更快地成长为一名熟练的ExtJS开发者。
6. **Ajax和数据管理**:EXTJS4内置了强大的Ajax请求处理和数据管理机制,通过Ext.data.Proxy和Ext.data.Store可以轻松处理远程数据请求和本地数据存储。 7. **可访问性**:EXTJS4注重无障碍性,遵循WCAG 2.0标准,...
这个"ExtJs实例,富客户端技术经典"的资源对于初学者来说是一个很好的学习材料,因为它的易理解性可以帮助快速上手。 首先,让我们深入了解一下ExtJS的核心概念: 1. **组件模型**:ExtJS采用组件化开发模式,将...
同时,需要在EXTJS4中设置适当的proxy,如Ajax proxy,指定URL到STRUTS2 ACTION,并定义对应的读者(reader)和写入者(writer)来处理数据的序列化和反序列化。 这个例子为初学者提供了一个很好的起点,了解EXTJS4...
这有助于初学者理解框架的工作原理。 2. **组件系统**:ExtJS的核心是其强大的组件系统,包括按钮、表格、面板、表单、树形视图等。教程可能会详细解释如何创建、配置和使用这些组件,以及如何利用布局管理器组织...
本资源提供的实例是关于如何在EXTJS3中集成百度地图的教程,适合初学者和有一定EXTJS基础的开发者学习。 首先,我们要了解EXTJS中的组件系统。EXTJS允许开发者通过组合不同的组件来创建复杂的用户界面,如表格、...
在实际项目中,你可能还会遇到数据加载、异步通信(使用Ajax)和状态管理等问题,ExtJS4提供了解决这些问题的强大工具,如Store和Proxy。同时,不要忽视性能优化,合理使用组件配置和内存管理技巧,可以使你的应用...
3. **数据绑定**:EXTJS 使用Model、Store 和 Proxy 模块实现数据绑定,允许将后端数据无缝地展示在前端组件上。Store 负责管理数据,Proxy 负责与服务器进行数据交换,Model 定义数据结构和验证规则。 4. **Ajax...
ExtJS 是一个强大的JavaScript库,专门用于构建富客户端的Web应用程序。它提供了丰富的用户界面组件...无论你是初学者还是经验丰富的开发者,这些资源都将帮助你更好地掌握ExtJS,开发出高效且用户体验优秀的Web应用。
EXTJS GridPanel 是EXTJS库中的核心组件之一,尤其在EXTJS 2.02版本中,它提供了强大的表格展示和交互功能,对于初学者来说极具学习价值。GridPanel不仅能够处理基本的表格操作,如单选、多选、排序、改变列宽等,还...
还引入了Ajax proxy,改进了数据处理,并对性能进行了优化。3.x系列是ExtJS广泛使用的版本之一。 3. **ExtJS 4.x API**: ExtJS 4引入了Model、Store和Controller的概念,强化了MVC(模型-视图-控制器)架构,使得...
ExtJS4是一款强大的JavaScript库,专门用于构建富客户端应用程序。这个文档集合包含了关于ExtJS4的详尽资料,是开发者学习和深入理解该...无论你是初学者还是经验丰富的开发者,这套文档都会是你编程旅程中的得力助手。
在这个项目中,可能使用了ExtJS的Model、Store和Proxy等核心概念: 1. **Model**:定义了数据结构和验证规则,与后台PHP模型相对应。 2. **Store**:存储和管理数据集,它可以连接到Proxy,从服务器获取或提交数据...