全 称:Ext.Updater
命名空间:Ext
定义 于:UpdateManager.js
类 名:Updater
父 类:Observable
为Element对象提供Ajax式的更新能力。Updater能用于更新Element一次或者使用startAutoRefresh让Element具备定时更新的能力。
用法:
//从一个Ext.Element对象获得Updater的引用
var el = Ext.get("foo");
var mgr = el.getUpdater();
mgr.update({
url: "http://myserver.com/index.php",
params: {
param1: "foo",
param2: "bar"
}
});
...
mgr.formUpdate("myFormId", "http://myserver.com/index.php");
//或者直接通过Updater构造函数来创建
var mgr = new Ext.Updater("myElementId");
mgr.startAutoRefresh(60, "http://myserver.com/index.php");
mgr.on("update", myFcnNeedsToKnow);
//从element对象的简捷调用方式
Ext.get("foo").load({
url: "bar.php",
scripts: true,
params: "param1=foo¶m2=bar",
text: "Loading Foo..."
});
总结上一面共计有四种更新方法:
updater.update({……});
updater.formUpdate(formname,url);
updater.startAutoRefresh(second,url);
Element.load({……});
公共属性:
defaultUrl : String
保存updater上一次更新时使用的url。
disableCaching : Boolean
是否在url后面上一个唯一标志的参数(当前时间,见Ext.data.Connection),默认值为:Ext.Updater.defaults.disableCaching.
el : Ext.Element
updater使用的element。
formUpdateDelegate : Function
相当于dotnet中的delegate。在别的地方定义,到这儿来调用。回调啦。内部使用方法如下:myUpdater.formUpdateDelegate.createCallback(arg1, arg2)
indicatorText : String
指示器文本(正在加载的时候),默认值为:Ext.Updater.defaults.indicatorText。
loadScripts : Boolean
输出的时候是不是加过脚本(?),默认值为:Ext.Updater.defaults.loadScripts。
refreshDelegate : Function
用于refresh()内的委托,scope使用this。内部使用方法如下:myUpdater.refreshDelegate.createCallback(arg1, arg2)。
renderer : Object
Updater的呈现器(默认值为:Ext.Updater.BasicRenderer)
showLoadIndicator : String
是否在加载过程中显示指示器文本,默认值为:Ext.Updater.defaults.showLoadIndicator。文档有误,应当是boolean类型。
sslBlankUrl : String
空页面url,用于SSL文件上传。默认值为:Ext.Updater.defaults.sslBlankUrl。
timeout : Number
请求超时。单位是秒。默认值为:Ext.Updater.defaults.timeout。
transaction : Object
当前事务对象,如果没有当前事务则为null。
updateDelegate : Function
用于更新(update())的委托。内部使用方式为:myUpdater.updateDelegate.createCallback(arg1, arg2)
公共方法:
Updater( Mixed el, [Boolean forceNew] )
直接创建一个新的Updater对象。
Updater.updateElement( Mixed el, String url, [String/Object params], [Object options] ) : void
不赞成. 一个静态方法. 反对用此函数取代el.load({url:'foo.php', ...})
用法:Ext.Updater.updateElement("my-div", "stuff.php");
abort() : void
取消当前正在执行的事务。
formUpdate( String/HTMLElement form, [String url], [Boolean reset], [Function callback] ) : void
执行一个异步form post。用返回的响应数据更新element。如果form有一个属性:enctype="multipart/form-data",它表示这是上传文件,将使用this.sslBlankUrl来阻止IE安全警告。
参数:
form : String/HTMLElement
form的id或者是element。
url : String
用于form.action。即提交的网址。
reset : Boolean
是否在更新完后重置表单。
callback : Function
当事务完毕后执和,它有如下参数:
el : Ext.Element
正在执行更新的元素
success : Boolean
是否更新成功。
response : XMLHttpRequest
响应结果。。
getEl() : Ext.Element
获得要更新的元素。
getRenderer() : void
取得当前内容呈现器。到Ext.Updater.BasicRenderer.render看更多的细节。
isAutoRefreshing() : void
是否是定时更新。。
isUpdating() : Boolean
是否处于正在更新中。
refresh( [Function callback] ) : void
用上一次更新的地址(defaultUrl)再次更新一下。如果没有就马上返回。
callback : Function
更新完毕后调用。
setDefaultUrl( String/Function defaultUrl ) : void
设置defaultUrl。
setRenderer( Object renderer ) : void
设置呈现器。
showLoading() : void
显示指示器。
startAutoRefresh( Number interval, [String/Object/Function url], [String/Object params], [Function callback], [Boolean refreshNow] ) : void
把这个元素设置为自动更新。通过使用stopAutoRefresh来停止自动更新。
stopAutoRefresh() : void
停止自动更新。
update( Object options ) : void
发起一次异步请求,使用请求的响应结果来更新元素内容。
注意:由于异步请求的一般是远程主机,所以元素不会在此函数返回时更新。要处理返回的数据,请使用回调或事件。
参数:
options : Object
一个包含如下属性的配置对象。
url : String/Function
请求所需要的url或能返回url的函数。
method : String
Post或者是GET。全为大写。
params : String/Object/Function
见Ext.data.Connection中的options.params的说明。
scripts : Boolean
当响应数据中包含<script>……</script>,即包含脚本或脚本引用时,是否提取并执行。为真则执行。默认值为:Ext.Updater.defaults.loadScripts。如果这个属性在options中设置了,那么回调将在此script执行完后再执行。
callback : Function
当响应结果已返回时调用,它有如下参数:
el : Ext.Element
正在更新的元素的引用。
success : Boolean
是否更新成功。
response : XMLHttpRequest
包含响应数据的XMLHttpRequest。
options : Object
传给update方法的options。
scope : Object
回调使用的scope。
discardUrl : Boolean
是否抛弃当前更新的url,不保存到defaultUrls。
timeout : Number
超时设置,单位为秒。默认值为:Ext.Updater.defaults.timeout。
text : String
这个text与indicatorText的区别在于,请见代码:
this.indicatorText = '<div class="loading-indicator">'+cfg.text+"</div>";
nocache : Boolean
用于Ext.data.Connection.disableCaching。
示例代码:
um.update({
url: "your-url.php",
params: {param1: "foo", param2: "bar"}, // or a URL encoded string
callback: yourFunction,
scope: yourObject, //(optional scope)
discardUrl: true,
nocache: true,
text: "Loading...",
timeout: 60,
scripts: false // Save time by avoiding RegExp execution.
});
公共事件:
beforeupdate : ( Ext.Element el, String/Object/Function url, String/Object params )
在更新之前触发。。
failure : ( Ext.Element el, Object oResponseObject )
更新失败时触发。
update : ( Ext.Element el, Object oResponseObject )
更新成功时触发。