通常我们使用html标签meta实现页面的自动刷新处理,这种方式会刷新整个html页面,但是很多情况下我们只需要更新页面中某一部分。Ext.UpdateManager为我们提供了一种随心所欲地刷新页面中任意部分的功能,并且为用户提供更好的浏览体验。
我们知道Ext.get()能够得到页面中任意一个Element的引用,只要该元素配置了一个id属性,请看下面的代码片段:
<span id="loggedInAgents"></span>
<span id="busyAgents"></span>
<span id="callsWaiting"></span>
上段代码定义了三个span元素,分别代表“登录座席数”、“忙数”、“等待电话数”。三个数值是变化的,我们需要周期性地更新三个数值。
var e = Ext.get('loggedInAgents'); //取得id属性值为'loggedInAgents'的span元素引用
var mgr = e.getUpdateManager(); //创建该span元素的UpdateManager实例
mgr.disableCaching = true; //关闭内容cache,否则会取cache中的内容,而不会刷新
mgr.showLoadIndicator = false;
mgr.on('beforeupdate',function(el){
e.fadeOut(); //淡出
});
mgr.on('update',function(el, response ){
e.fadeIn(); //淡入
var doc = response.responseXML; //得到action的返回内容(xml格式)
var loggedInAgents = doc.getElementsByTagName( "LOGGEDINAGENTS" )[0].firstChild.nodeValue; //从返回内容中得到新值
Ext.get( "loggedInAgents" ).dom.innerHTML = "<b><em>" + loggedInAgents + "</em></b>"; //更新span元素的内容(加粗、斜体)
});
mgr.startAutoRefresh(
15, //每隔15秒刷新一次
"ciscoQueueStat.do", //一个struts action,从后台取出新的数值,并以xml格式返回
null,
true
);
var e1 = Ext.get('busyAgents');
var mgr1 = e1.getUpdateManager();
mgr1.disableCaching = true;
mgr1.showLoadIndicator = false;
mgr1.on('beforeupdate',function(){
e1.fadeOut();
});
mgr1.on('update',function(el, response ){
e1.fadeIn();
var doc = response.responseXML;
var busyAgents = doc.getElementsByTagName( "BUSYAGENTS" )[0].firstChild.nodeValue;
Ext.get( "busyAgents" ).dom.innerHTML = "<b><em>" + busyAgents + "</em></b>";
});
mgr1.startAutoRefresh(
15,
"<%=serverpath%>/ciscoQueueStat.do",
null,
true
);
var e2 = Ext.get('callsWaiting');
var mgr2 = e2.getUpdateManager();
mgr2.disableCaching = true;
mgr2.showLoadIndicator = false;
mgr2.on('beforeupdate',function(el){
e2.fadeOut();
});
mgr2.on('update',function(el, response ){
e2.fadeIn();
var doc = response.responseXML;
var callsWaiting = doc.getElementsByTagName( "CALLSWAITING" )[0].firstChild.nodeValue;
var color = "<font color='black'>"; //根据返回值的大小,以不同的颜色显示
if ( callsWaiting >= 1 && callsWaiting <= 3 )
color = "<font color='green'>";
else if ( callsWaiting >=4 && callsWaiting <= 10 )
color = "<font color='DarkOrange'>";
else if ( callsWaiting > 10 )
color = "<font color='red'>";
Ext.get( "callsWaiting" ).dom.innerHTML = color + "<b><em>" + callsWaiting + "</em></b>" + "</font>";
});
mgr2.startAutoRefresh(
15,
"<%=serverpath%>/ciscoQueueStat.do",
null,
true
);
上面的javascript代码定义了三个UpdateManager,每隔15秒,刷新三个span元素中的值。 这种方式实现的内容刷新有局部淡出淡入的效果,不会导致页面的抖动,因此提供更好的用户体验。
分享到:
相关推荐
但仅此一项无法实现自动刷新,我们需要配合其他方法来定期刷新数据。 二、定时刷新 1. 使用定时器:可以使用JavaScript的setTimeout或setInterval函数来周期性地触发Store的load方法,从而实现数据的自动刷新。...
本文将详细解析如何利用`Ext.Ajax.request`实现同步请求,并探讨其背后的原理和注意事项。 首先,我们需要理解Ajax的本质,它是Asynchronous JavaScript and XML的缩写,虽然现在XML已不再是主要的数据交换格式,但...
在.NET环境中使用Ext.Direct,可以通过创建一个Router来实现这一目标。 标题“在.NET中使用Ext.Direct的Router”指出了我们主要讨论的内容——如何在.NET平台上利用Ext.Direct的Router特性。Router是Ext.Direct的...
在这个例子中,`Ext.get`和`Ext.fly`都实现了对元素的隐藏或显示操作。然而,`Ext.fly`并不会将`bar`元素的对象持久化在内存中,而`Ext.get`则会缓存`foo`元素的对象,以便于后续的操作。 综上所述,`Ext.get`和`...
在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...
### Ext.data.Store的基本用法详解 #### 一、Ext.data.Store简介 `Ext.data.Store`是ExtJS框架中用于管理数据的核心组件之一...通过掌握这些基本知识,开发者可以更加灵活地使用`Ext.data.Store`来处理各种数据需求。
标题"Ext.Ajax.request跨域"指出我们将探讨如何使用ExtJS库中的Ajax模块进行跨域请求。Ext.Ajax.request是ExtJS提供的一种发起Ajax请求的方式,它允许开发者向服务器发送异步HTTP请求。然而,由于浏览器的同源策略...
在EXTJS这个强大的JavaScript框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们都用于操作DOM元素,但它们之间存在着微妙的差异。了解这些差异对于优化代码性能和理解EXTJS的工作机制至关重要。 首先,`Ext....
在EXTJS这个强大的JavaScript框架中,`Ext.Panel`和`TreePanel`是两个非常重要的组件,它们被广泛用于构建复杂的用户界面。这篇文章将探讨如何在这些组件中动态加载本地页面数据,以提升用户体验并实现灵活的数据...
EXT.form组件的事件处理也很重要,例如`Ext.form.TriggerField`的`onTriggerClick`事件,会在用户点击触发按钮时触发,通常用于执行下拉菜单的显示或隐藏操作。 EXT.form组件的灵活性和丰富性使得开发者可以轻松地...
总结来说,在Ext.js中,获取`Ext.Store`应使用`Ext.getStore`方法,而不是`Ext.getCmp`,因为Store是通过`storeId`在内存中注册和管理的,而不是作为页面上的一个可视组件。同时,Store的设计方式有助于数据的安全性...
其中,我们可以看到Ext.Ajax可以实现动态与静态的方式提交到web服务器。从中可以看出,其实Ext框架可以非常方便的与现有网站集成。关于Ext.data.Store类,我们可以看出:该框架提供了客户端缓存的功能--这对于我们...
在实际使用`Ext.ux.SwfUploadPanel.js`时,你需要在ExtJS应用程序中引入这个文件,并配置相关参数,例如服务器端处理脚本地址、允许的文件类型、最大文件大小等。然后,你可以像创建其他ExtJS组件一样,实例化...
`renderTo`属性指定了窗口应渲染到哪个DOM元素上,通常设置为`Ext.getBody()`表示渲染到页面的主体部分。 3. **显示窗口**:最后,调用`show`方法来显示窗口: ```javascript myWindow.show(); ``` 结合以上...
在本文中,我们将深入探讨`Ext.tree.TreeLoader`与JSON数据在Ext JS框架中的应用。`Ext.tree.TreeLoader`是Ext JS库中的一个组件,它负责加载和解析树形结构的数据,而JSON(JavaScript Object Notation)则是一种轻...
这个示例可能会教导开发者如何创建Ext.Direct的API,如何在.NET服务器上注册这些API,以及如何在Ext JS应用中使用`Ext.direct.Manager`来调用这些API。 在.NET中实现Ext.Direct时,开发者通常需要以下步骤: 1. **...
8. **组合框模式**:`Ext.form.TextField`还可以扩展为`Ext.form.ComboBox`,实现下拉选择功能,这在需要用户从预定义选项中选择时非常有用。 在压缩包中的`Ext.form.TextField`文件夹,很可能是包含了一个或者多个...
为了实现窗口的动态弹出和隐藏,使用了`Ext.TaskMgr`进行定时任务管理。其中,`upTask`用于控制窗口向上移动,而`downTask`则用于控制窗口向下移动。这两个任务的执行间隔均为`moveSpeed`,单位为毫秒。 ##### 4. *...
Ext.ux.submit是一个基于Ext Core库的扩展,用于增强原生表单提交的功能。这个扩展主要专注于添加验证机制,使得在前端就能对用户输入的数据进行有效性检查,从而提高应用程序的安全性和用户体验。在深入探讨之前,...