- 浏览: 321569 次
- 性别:
文章分类
最新评论
-
i042416:
分析在哪?
angular分析 -
何盆盆:
你好,请问您这是Extjs3还是Extjs4
ExtJs源码分析与学习—ExtJs事件机制(一) -
124753561:
引用引用引用引用引用[u][u][u][u][i][i][i] ...
Subvision SVN 服务端与客户端的安装 -
谷超:
请问一下例子中itext是什么版本的?
利用iText生成word文档例子参考 -
geosmart:
正好要用到执行字符串中方法,学习了
java中利用反射机制实现调用给定为字符串的方法名
如果想让html页面中任意元素自动局部刷新,而不是整个页面刷新,可以用Ext提供的Ext.UpdateManager来完成其功能,该类还可以实现在线人数统计等功能。下面先看例子
//html内容 <div id="refreshContent"></div> //js内容 var el = Ext.get('refreshContent'); //取得id属性值为'refreshContent'的元素引用 var updater = el.getUpdateManager(); //创建元素的UpdateManager实例 updater.disableCaching = true; //关闭内容cache,否则会取cache中的内容,而不会刷新 updater.showLoadIndicator = true;//加载的时候显示加载信息 updater.on('beforeupdate', function(el) { el.fadeOut(); //淡出 }); updater.on('update', function(el, response) { el.fadeIn(); //淡入 var resData = Ext.util.JSON.decode(response.responseText); var content = resData.content; el.dom.innerHTML = '<b><em>' + content + '</em></b>'; }); //每隔5秒刷新一次,从后台取出新的数值,并以json格式返回 updater.startAutoRefresh(5, 'demo1.json', null, null, true); //json内容 { content: '要加载的测试内容' }
上面的代码运行效果为:每隔15秒,刷新id为refreshContent 的div元素中的值。 这种方式实现了局部淡入淡出的刷新效果,不会导致页面的抖动,因此提供了更好的用户体验。
该类提供了以下四种方式来改变元素的内容
var updater = Ext.get('refreshContent').getUpdateManager(); updater.update({……});//最基本的更新element的值 updater.formUpdate(formname,url);// 执行表单的异步请求 updater.startAutoRefresh(second,url);// 设置该元素自动刷新。 Element.load({……});//实际上调用了第一种的情况
下面看其源代码
Ext.UpdateManager = Ext.Updater = Ext.extend(Ext.util.Observable, function() { var BEFOREUPDATE = "beforeupdate", UPDATE = "update", FAILURE = "failure"; … return { constructor: function(el, forceNew){ var me = this; el = Ext.get(el); if(!forceNew && el.updateManager){ return el.updateManager; } me.el = el; me.defaultUrl = null; me.addEvents( BEFOREUPDATE, UPDATE, FAILURE ); Ext.apply(me, Ext.Updater.defaults); me.transaction = null; me.refreshDelegate = me.refresh.createDelegate(me); me.updateDelegate = me.update.createDelegate(me); me.formUpdateDelegate = (me.formUpdate || function(){}).createDelegate(me); me.renderer = me.renderer || me.getDefaultRenderer(); Ext.Updater.superclass.constructor.call(me); }, … }; }());
Ext.UpdateManager的别名为Ext.Updater,该类继承了Ext.util.Observable。从代码的实现看,Ext.UpdateManager类中的方法被定义在闭包函数中,通过自执行该函数,返回return中的方法,这样Ext.UpdateManager就拥有了return中定义的属性和方法。在构造器中如果forceNew 设为false并且el中已实例了updateManager,则直接返回
if(!forceNew && el.updateManager){ return el.updateManager; }
否则实例化该updateManager
下面看其主要属性和方法
公共属性
- defaultUrl : String 保存updater上一次更新时使用的url。
- disableCaching : Boolean是否关闭内容cache,默认不关闭,会取cache中的内容,而不会刷新
- el : Ext.Element updater使用的element。
- formUpdateDelegate : Function 执行表单的异步请求代理
- indicatorText : String指示器文本(正在加载的时候),默认值为:Ext.Updater.defaults.indicatorText。
- loadScripts : Boolean输出的时候是不是加载脚本,默认值为:Ext.Updater.defaults.loadScripts。
- refreshDelegate : Function 用于refresh()内的委托,scope使用this。
- renderer : Object Updater的内容渲染器(默认值为:Ext.Updater.BasicRenderer)
- showLoadIndicator : Boolean 是否在加载过程中显示指示器文本,默认值为:Ext.Updater.defaults.showLoadIndicator。
- sslBlankUrl : String空页面url,用于SSL文件上传。默认值为:Ext.Updater.defaults.sslBlankUrl。
- timeout : Number请求超时。单位是秒。默认值为:Ext.Updater.defaults.timeout。
- transaction : Object 当前事务对象,如果没有当前事务则为null。
- updateDelegate : Function 用于更新(update())的委托。
公共方法:
-
update(url, params, callback, discardUrl ) 发送一个异步请求,然后根据响应的response更新元素内容。如不指定使用GET,否则POST。
注意:由于异步请求的一般是远程主机,所以元素不会在此函数返回时更新。要处理返回的数据,请使用回调或事件。请求的options,包含以下选项中的任一项或多项
url : 请求的url或是能够返回url的函数(默认为最后使用的url)
method : 默认为get,可设为post
params : (可选的) 提交的参数,为可url编码的字符串"¶m1=1¶m2=2",也可以是对象的形式{param1: 1, param2: 2}
scripts : loadScripts的简写
callback : (可选的) callback 事务完成后执行的回调(带参数oElement, bSuccess)
el : 被更新的Element
success : True表示成功,false表示失败。
respone : 进行更新时返回的那个XMLHttpRequest对象
options : 参数
scope : 上下文
discardUrl : (可选的) 默认情况下,完成更新后,最后一次使用的url会保存到defaultUrl属性,该参数为true的话,就不会保存。
timeout : 超时时间
text : indicatorText的简写
nocache : 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. });
-
Ext.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)再次更新一下。如果没有就马上返回。
- 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 停止自动更新。
公共事件:
- beforeupdate : ( Ext.Element el, String/Object/Function url, String/Object params )在更新之前触发。
- failure : ( Ext.Element el, Object oResponseObject )更新失败时触发。
- update : ( Ext.Element el, Object oResponseObject ) 更新成功时触发。
以上为该类的主要属性、方法和事件,ext组件中LoadMask.js用到了Ext.UpdateManager来实现遮罩提示信息的效果。
发表评论
-
ExtJs源码分析与学习—Ext.ToolTip应用
2011-12-29 14:18 1841源码待分析,先粘一例子备用 // ... -
ExtJs源码分析与学习—遮罩层
2011-09-06 16:49 4877类Ext.LoadMask ... -
ExtJs源码分析与学习—ExtJs元素Element(六)
2011-06-08 10:41 1795批量操作元素Ext.CompositeElementLite ... -
ExtJs源码分析与学习—ExtJs元素Element(五)
2011-06-07 17:35 1932元素的查询Ext.DomQuery 该 ... -
ExtJs源码分析与学习—ExtJs元素Element(四)
2011-06-07 17:17 3032元素的操作Ext.DomHelper ... -
ExtJs源码分析与学习—ExtJs元素Element(三)
2011-06-07 17:06 1050Ext.Element扩展 通过Ex ... -
ExtJs源码分析与学习—ExtJs元素Element(二)
2011-06-07 16:42 2639元素操作核心类Ext.Elemen ... -
ExtJs源码分析与学习—ExtJs元素Element(一)
2011-06-07 15:47 2128从这一节开始 ... -
ExtJs源码分析与学习—工具类Ext.util.TextMetrics
2011-06-07 15:11 2039Ext提供了一个 ... -
ExtJs源码分析与学习—ExtJs事件机制(六)
2011-06-07 11:25 1481最后把涉及到Ext事件的相关类图贴到这里 ... -
ExtJs源码分析与学习—ExtJs事件机制(五)
2011-06-07 11:15 3056最近一直忙着做产品,所以好久没有写文章了,下面接着 ... -
Ext 组件操作总结——会不断完善
2011-05-10 16:36 26921、Ext.Component 该组件在渲染的时候会默认的 ... -
ExtJs表单几种验证与扩展
2011-05-03 16:26 4898首先说明一下表单验证与其相关的一些设置 Ext ... -
ExtJs源码分析与学习—ExtJs事件机制(四)
2011-03-19 23:37 5306ExtJs组件事件——ExtJs自定义事件的处理 ... -
ExtJs源码分析与学习—ExtJs事件机制(三)
2011-03-15 20:20 3255这篇讲ExtJs对事件的管理和调用 Ext ... -
ExtJs源码分析与学习—ExtJs事件机制(二)
2011-03-15 20:15 2615在ExtJs源码分析与学习—ExtJs事件机制( ... -
ExtJs源码分析与学习—ExtJs事件机制(一)
2011-03-15 18:53 2831前面讲了ExtJs核 ... -
ExtJs源码分析与学习—ExtJs核心代码扩展
2011-01-20 19:16 2083前面三篇文章参考作者snandy总结了Ext中核心 ... -
ExtJs源码分析与学习—ExtJs核心代码(三)
2011-01-17 17:29 2177Ext为javascript的一些对象进行了扩展,主要有Str ... -
ExtJs源码分析与学习—ExtJs核心代码(二)
2011-01-17 16:23 1857接上篇 下面介绍Ext.js ...
相关推荐
### 使用Ext.UpdateManager实现页面任意部分自动刷新处理 在现代Web开发中,为了提供更加流畅、实时的用户体验,页面的部分内容或组件需要定时更新。这种更新通常涉及到与服务器的交互,以便获取最新的数据并将其...
这些文件可以帮助开发者理解并应用`Ext.ux.form.LovCombo`,通过查看源码学习如何初始化、配置以及处理相关事件。 综上所述,`Ext.ux.form.LovCombo`是EXTJS中用于创建具有多选功能和良好浏览器兼容性的下拉框组件...
在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...
目录 1. ExtJs 结构树 2 2. 对ExtJs的态度 3 3. Ext.form概述 4 4. Ext.TabPanel篇 5 5. Function扩展篇 7 6. Ext.data.Store篇 10 7. Ext.data.JsonReader篇一 12 ...28. extJs 2.0学习笔记(ext.js篇) 77
总的来说,ExtJS 4.0中对RowEditing插件的重构旨在提供更高效、易用且可靠的表格数据编辑功能,同时通过源码分析和文档学习,开发者可以更好地利用这个插件来提升其应用程序的用户体验。尽管具体的改进内容需要通过...
### ExtJs选中 `var editor = new Ext.ux.grid.RowEditor` 详解 在Web开发领域,特别是使用ExtJs框架进行复杂用户界面构建时,`RowEditor` 是一个非常实用的功能,它允许用户直接在表格行内编辑数据,极大地提高了...
此外,`Ext.util.Format`还包括其他与数字相关的函数,如`numberRenderer`,它可以创建一个返回格式化数字的函数,便于在模板或配置中重用。`numberRound`则用于四舍五入数字到指定的小数位数。 总的来说,`Ext....
这个是《ExtJS源码分析与开发实例宝典》高清版本,是本人花钱买来的,所以分享给大家,希望大家喜欢,由于本人一次只能上传60M大的文件(试了好多次,每次都上传到99%就不动了,还以为csdn在后台审核内容呢,害我电脑...
这个是《ExtJS源码分析与开发实例宝典》高清版本,是本人花钱买来的,所以分享给大家,希望大家喜欢,由于本人一次只能上传60M大的文件(试了好多次,每次都上传到99%就不动了,还以为csdn在后台审核内容呢,害我电脑...
这个是《ExtJS源码分析与开发实例宝典》高清版本,是本人花钱买来的,所以分享给大家,希望大家喜欢,由于本人一次只能上传60M大的文件(试了好多次,每次都上传到99%就不动了,还以为csdn在后台审核内容呢,害我电脑...
这个是《ExtJS源码分析与开发实例宝典》高清版本,是本人花钱买来的,所以分享给大家,希望大家喜欢,由于本人一次只能上传60M大的文件(试了好多次,每次都上传到99%就不动了,还以为csdn在后台审核内容呢,害我电脑...
在本文中,我们将深入探讨ExtJS中的`Ext.TabPanel`组件,它是创建多标签界面的核心元素。`Ext.TabPanel`允许开发者在单个容器中组织多个面板或视图,每个面板都有自己的标题,并且可以通过标签页进行切换。让我们...
extjs 可编辑的表格树,每个单元格自定义编辑组件,可以自适应列宽,只有源码与例子,运行实例要修改路径,不然图片不能显示,注意etree.jsp的js引入路径 支持Ext2.x以上版本 如运行不了EmailTo : codeme9@gmail....
主要用例子说明extjs4的form表单的运用,其中有表单属性说明,表单控件运用说明如: title:'表单', //表单标题 bodyStyle:'padding:5 5 5 5', //表单边距 height:120, //表单高度 width:200, //表单宽度 ...
在ExtJs框架中,日期组件(DateField)是用于用户输入日期的常见控件。然而,标准的ExtJs DateField并未内置清空日期的功能,这可能会在某些应用场景中造成不便。为了解决这个问题,我们需要自定义一个扩展,为日期...
在EXTJS库中,`Ext.Ajax.request`是用于发送Ajax请求的核心方法,它支持异步和同步操作。本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,...
document.write("<script type=\"text/javascript\" src=\"../extjs/adapter/ext/ext-base.js\"></script>"); document.write("<script type=\"text/javascript\" src=\"../extjs/ext-all.js\"></script>"); ...
在3.4.0版本中,`ext.jsb2` 文件是一个关键组成部分,它对于理解和开发基于ExtJS的应用程序至关重要。这个文件的缺失可能会对升级到4.0.0版本的开发者造成困扰,因为4.0.0版本不再包含这个文件,但幸运的是,它可以...
首先,ExtJs中的Ext.MessageBox是一个常用来与用户进行交互的弹窗组件。它可以用来显示警告框、确认框等。在进行Ajax请求之前,我们可以使用Ext.MessageBox确认框来询问用户是否要进行操作,并在用户确认后显示一个...
本实例将帮助初学者了解如何使用ExtJS入门,并通过提供的资源文件学习如何改变文件的颜色。 首先,我们要明白在ExtJS中改变文件颜色主要涉及到CSS样式和组件的配置。ExtJS的组件如按钮、表格、面板等都可以通过CSS...