快速业务通道

ASP.NET AJAX:UpdatePanel控件

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-13
tePanel 不会将任何数据添加到响应中。

不使用 UpdatePanel 更新

AJAX 不仅可以创建更好的用户体验,它还可以提供更高效的网络通信。当发生传统的 ASP.NET 回发时,Web 窗体中包括视图状态在内的所有数据,都会传输到回发中的服务器。视图状态是 ASP.NET 页面,尤其是使用 DataGrid 和 GridView 控件的 ASP.NET 页面似乎会反应迟缓的一个原因。具有太多视图状态的页面会降低性能,并且具有太多视图状态的页面在 ASP.NET 应用程序中都太常见。

用 AJAX 回调替代 ASP.NET 回发的好处之一是能正确完成,AJAX 回调仅传送需要被传送的数据。这意味着,它们不必将视图状态包括在该传输中。

当您使用 UpdatePanel 在一个页面上执行无闪烁更新时,您可能会认为您在进行高效构建。毕竟,UpdatePanel 使用的是 AJAX,不是吗?不幸的是,如果您在 UpdatePanel 更新时检验一下网络中的通信,您会发现您根本就没有保存什么东西,至少是在发送的时候没有保存。通常在回发期间传送到服务器的视图状态数据(与其他数据)也会在 UpdatePanel 回调期间传送。事实上,来自 UpdatePanel 的异步 XML-HTTP 请求中所增长的数据几乎与在标准 ASP .NET 回发中增长的数据相同。下面是有关 ASP.NET AJAX 不可告人的秘密:UpdatePanel 虽易于使用,但是通信效率不高。

几乎没有什么办法可让您提高 UpdatePanel 的效率,但是您可以放弃使用 UpdatePanel,并转而使用 ASP.NET AJAX 的其他功能来更新页面内容,它不仅同样流畅,而且更加高效。它只需要多一点点力气,但是最后的结果往往让人觉得是值得付出的,因为您可以大大降低在客户端与服务器之间传输的数据量。

您还可以减少服务器上的负载。当 UpdatePanel 回调到服务器时,被回调定为目标的页面会完成几乎整个生命周期 — 该页面会被实例化,该页面中的控件也会被实例化,并且 UpdatePanel 内的控件也会完成一个正常呈现循环。那是更新该网页一部分的大笔开销。

作为示例,请考虑图 2 中的页面段。它提供了一个允许用户键入邮政编码的简单 UI,并且单击按钮就可以用城市和州来初始化城市和州字段(请参见图 3)。所有的控件都承载在 UpdatePanel 中,因此 Button 控件的回发被转换为异步回调,并且事件处理程序 (GetCityAndState) 会被调用到该回调内部的服务器上。GetCityAndState(未显示代码)从邮政编码文本框中读取邮政编码,将其转换成城市和州,并相应地初始化表示城市和州的 TextBox 和 DropDownList。由于这些都发

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号