ASP.NET AJAX 中 UpdateProgress 的瑕疵及其解决方法
... 前言
在Web应用程序中,引入AJAX,不仅可以提高用户体验(页面局部刷新),而且可以在一定程度上,降低Web服务器的工作负载和响应时间。
AJAX 使用Javascript,在客户端(浏览器端),通过Http(s)协议,向服务器端 (Web Server)发起请求;服务器根据请求的URI,
完成相应的逻辑操作,尔后将执行的结果通过Http(s)协议,返回给客户端。
客户端对获取的返回结果(TEXT/XML 串),使用Javascript, 在callback 中解析、呈现。
... ASP.NET AJAX 服务器控件
... UpdateProgress
AJAX 服务器控件中, UpdatePanel是一个大玩意,页面请求完成后,你会发现只有处于UpdatePanel 之中的内容才会更新,
而UpdatePanel 之外之物则保持原样。
即便如此,在UpdatePanel完成更新之前,比较友好的方式是,提示用户稍安勿躁,请求正在处理之中。
... UpdateProgress的瑕疵
UpdateProgress 很有用,但也有一点瑕疵。
下面例子中,用户点击"Filter"按钮, 利用Ajax Toolkit 中的ModalPopupExtender,弹出搜索条件窗口;
在弹出窗口中,点击“OK”按钮提交AJAX请求,而此时,我们的进度条却没有在最上层显示,而且常常是躲在弹出窗口下面看不见。
... 解决方法
下面谈谈我的做法:
方法(一)
在与ModelPopupExtender 相关联的Panel里, 加入一份UpdateProgress的Template 拷贝。如下:
$get("<%=divFilteringLoader.ClientID%>").style.display = 'block';
方法(二)
用户点击"OK"时,客户端触发Cancel按钮的点击事件:
$get("<%=btnFilterCancel.ClientID%>").click();
... 总结
问题很简单,解决的方式也很简单。
园子里的朋友们,有遇到相同问题的吗?
还望积极贡献些方法和主意。
Tag标签: AJAX,UpdateProgress
0
0
0
(请您对文章做出评价)
« 上一篇:也谈设计模式,实例票据打印 解析 Decorator
Feedback
相关文档:
Ajax框架介绍
到此为止,你可能已经注意到,使用Ajax编程时有很多麻烦事。如果你要支持多个浏览器(现在还有谁只支持一个浏览器呢?),无疑会遭遇不兼容问题。单看一个简单的动作,比如说创建XMLHttpRequest对象的一个实例,这需要先进行浏览器测试。一旦开始尝试使用Ajax技术,你很快就会注意到要反复地完成同样的一 ......
XMLHttpRequest 对象是AJAX功能的核心,要开发AJAX程序必须从了解XMLHttpRequest 对象开始。
了解XMLHttpRequest 对象就先从创建XMLHttpRequest 对象开始,在不同的浏览器中创建XMLHttpRequest 对象使用不同的方法:
先看看IE创建XMLHttpRequest 对象的方法(方法1):
var xmlhttp = new ActiveXObject("Msxml2.XMLH ......
SiteMapPath 控件包含来自站点地图的导航数据。此数据包括有关网站中的页的信息,如 URL、标题、说明和导航层次结构中的位置。若将导航数据存储在一个地方,则可以更方便地在网站的导航菜单中添加和删除项。
下面的代码示例演示包含在 Web.sitemap 文件中的站点地图数据。 ......
默认情况下,ASP.NET 网站导航使用一个名为 Web.sitemap 的 XML 文件,该文件描述网站的层次结构。但是,您可能要使用多个站点地图文件或站点地图提供程序来描述整个网站的导航结构。
例如,您可以具有引用子站点地图的主站点地图。主站点地图可以是:
<?xml version="1.0" encoding ......