extJs 2.1学习笔记(Ext.Updater篇二)

来源:互联网 发布:广东历年相对湿度数据 编辑:程序博客网 时间:2024/05/01 11:02
 

全  称: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&param2=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 = &apos;<div class="loading-indicator">&apos;+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 )
更新成功时触发。

原创粉丝点击