ASP.NET AJAX 的 UpdatePanel 控件不是万能的
以下引用自 MSDN Magazine:
不论好坏,UpdatePanel 控件都是 ASP.NET AJAX 社区所喜爱的。我说“好”,是因为 UpdatePanel 使部分页面呈现变得相当简单,而说“坏”,是因为它的简便和易用性是以效率和令人啼笑皆非的带宽为代价的。
UpdatePanel 可以为一般的网页带来 AJAX 神奇的好处,但是它不能提供我们与 AJAX 正常关联的高效性。例如,您是否知道,当 UpdatePanel 控件对服务器执行异步 AJAX 回调以更新其内容时,这个请求包含了常规 ASP.NET 回发所包含的一切,其中还包括 ViewState 呢?具有太多 ViewState 的页面会降低性能,并且具有太多 ViewState 的页面在 ASP.NET 应用程序中都太常见。
如果您准备使用 UpdatePanel 控件,您需要清楚您在准备干什么。在许多情况下,从性能的角度而言,应用程序最好是不使用 UpdatePanel,而是使用对 WebMethods 或页面方法的异步调用。
…中間略…
当您使用 UpdatePanel 在一个页面上执行无闪烁更新时,您可能会认为您在进行高效构建。毕竟,UpdatePanel 使用的是 AJAX,不是吗?不幸的是,如果您在 UpdatePanel 更新时检验一下网络中的通信,您会发现您根本就没有保存什么东西,至少是在发送的时候没有保存。通常在回发期间传送到服务器的 ViewState 数据(与其他数据)也会在 UpdatePanel 回调期间传送。事实上,来自 UpdatePanel 的异步 XML-HTTP 请求中所增长的数据,几乎与在标准 ASP .NET 回发中增长的数据相同。下面是有关 ASP.NET AJAX 不可告人的秘密:UpdatePanel 虽易于使用,但是通信效率不高。
几乎没有什么办法可让您提高 UpdatePanel 的效率,但是您可以放弃使用 UpdatePanel,并转而使用 ASP.NET AJAX 的其他功能来更新页面内容,它不仅同样流畅,而且更加高效。它只需要多一点点力气,但是最后的结果往往让人觉得是值得付出的,因为您可以大大降低在客户端与服务器之间传输的数据量。
相关文档:
asp.net错误处理方法 大部分都用 try catch
我们也可以在页面定义 protected void Page_Error(object sender, EventArgs e)方法处理错误信息
{
//先获取当前发生异常
Exception ex = Server.GetLastError().GetBaseException();
if (ex is ArgumentOu ......
由于mvc架构和传统的.net程序有所不同,所以进行异步提交的时候,就和过去的方法参数有所差别,下面我就介绍下两种常用的提交方式在MVC下如何调用。
1.直接提交数据到Action
假设一个发布BLOG的页面的回复功能,有一个ID为'ReInfo'的div负责显示回复的消息。
点击提交按钮后,qj的post方法将数据传递到/Blog/BlogR ......
先看下面的一段代码:
public class UserTest
{
public int age { set; get;
}
public string name { set; get; } & ......
asp.net个人学习历程初学到精通 收藏
如果你是一个菜鸟或者自认为初学者那么本文非常适合你;
不能说这30本书就是最佳组合,但是可以说这个组合不差;
本人曾博览群书,很多书重复,很多书讲的不适用,这些书都是目前书店可以买到的;
达到中级程序员以后怎么成为高级程序员就靠你自己了,而此时你已经 ......
private void Page_Load(object sender, System.EventArgs e)
{
DataGrid1.Columns[0].HeaderText = "文章标题";
DataGrid1.Columns[1].HeaderText = "发布日期";
DataGrid1.Columns[0].HeaderStyle.HorizontalAlign = HorizontalA ......