第10章 数据存储与传输 http://book.51cto.com/art/200901/106549.htm
本章内容
Ext.data简介
Ext.data.Connection
Ext.data.Record
Ext.data.Store
常用proxy
常用reader
高级store
EXT中的Ajax
关于scope和createDelegate()
DWR与EXT整合
10.1 Ext.data简介
Ext.data在命名空间中定义了一系列store、reader和proxy。Grid和ComboxBox都是以Ext.data为媒介获取数据的,它包含异步加载、类型转换、分页等功能。Ext.data默认支持Array、JSON、XML等数据格式,可以通过Memory、HTTP、ScriptTag等方式获得这些格式的数据。如果要实现新的协议和新的数据结构,只需要扩展reader和proxy即可。DWRProxy就实现了自身的proxy和reader,让EXT可以直接从DWR获得数据。
10.2 Ext.data.Connection
Ext.data.Connection是对Ext.lib.Ajax的封装,它提供了配置使用Ajax的通用方式,它在内部通过Ext.lib.Ajax实现与后台的异步调用。与底层的Ext.lib.Ajax相比,Ext.data. Connection提供了更简洁的配置方式,使用起来更方便。
Ext.data.Connection主要用于在Ext.data.HttpProxy和Ext.data.ScriptTagProxy中执行与后台交互的任务,它会从指定的URL获得数据,并把后台返回的数据交给HttpProxy或ScriptTagProxy处理,Ext.data.Connection的使用方式如代码清单10-1所示。
代码清单10-1 使用Ext.data.Connection
var conn = new Ext.data.Connection({ |
在使用Ext.data.Connection之前,都要像上面这样创建一个新的Ext.Connection实例。我们可以在构造方法里配置对应的参数,比如autoAbort表示链接是否会自动断开、default- Headers参数表示请求的默认首部信息、disableCaching参数表示请求是否会禁用缓存、extraParams参数代表请求的额外参数、method参数表示请求方法、timeout参数表示连接的超时时间、url参数表示请求访问的网址等。
在创建了conn之后,可以调用request()函数发送请求,处理返回的结果,如下面的代码所示。
conn.request({ |
Request()函数中可以设置success和failure两个回调函数,分别在请求成功和请求失败时调用。请求成功时,success函数的参数就是后台返回的信息。
我们再来看一下request函数中的其他参数。
url:String:请求url。
params:Object/String/Function:请求传递的参数。
method:String:请求方法,通常为GET或POST。
callback:Function:请求完成后的回调函数,无论是成功还是失败,都会执行。
success:Function:请求成功时的回调函数。
failure:Function:请求失败时的回调函数
scope:Object:回调函数的作用域。
form:Object/String:绑定的form表单。
isUpload:Boolean:是否执行文件上传。
headers:Object:请求首部信息。
xmlData:Object:XML文档对象,可以通过URL附加参数的方式发起请求。
disableCaching:Boolean:是否禁用缓存,默认为禁用。
Ext.data.Connection还提供了abort([Number transactionId])函数,当同时有多个请求发生时,根据指定的事务id放弃其中的某一个请求。如果不指定事务id,就会放弃最后一个请求。isLoading([Number transactionId])函数的用法与abort()类似,可以根据事务id判断对应的请求是否完成。如果未指定事务id,就判断最后一个请求是否完成。