【问题标题】:why asyncpostback in asp.net webform page is so heavy为什么 asp.net webform 页面中的 asyncpostback 如此繁重
【发布时间】:2016-01-03 07:50:42
【问题描述】:

我有一个 webform asp.net 页面,上面有近 40 个控件和 50 个服务器验证器 我正在使用带有 asyncpostback 触发器的 updatepanel,如下所示:

 <asp:UpdatePanel ID="pnlMain" runat="server" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="rdblHeiatElmi" EventName="SelectedIndexChanged" />
        <asp:AsyncPostBackTrigger ControlID="txtCodeMeli" EventName="TextChanged" />
        <asp:AsyncPostBackTrigger ControlID="chbkDaneshkade" EventName="SelectedIndexChanged" />
        <asp:AsyncPostBackTrigger ControlID="drpProvince1" EventName="SelectedIndexChanged" />
        <asp:AsyncPostBackTrigger ControlID="drpProvince2" EventName="SelectedIndexChanged" />
    </Triggers>
    <ContentTemplate> 

我的问题是:为什么我的异步回发数据如此繁重? 我检查了发送回服务器的数据,它在每个异步回发中都接近 1200KB。

【问题讨论】:

  • 我想这是因为每个 AJAX 请求都会发送 ViewState
  • 我怀疑是这样,我如何检查 viewstat 的确切大小?
  • 您可以查看在 AJAX 请求期间发送的有效负载。 ViewState 作为隐藏输入字段发送。

标签: c# asp.net ajax webforms updatepanel


【解决方案1】:

UpdatePanel 是一种简单但繁重的 AJAX 方法,当时大多数 ASP.NET 开发人员根本没有为 AJAX 做好准备。

它不是与服务器端交换 JSON/XML 数据,而是发送受 ContentTemplate 占位符内的某些操作 HTML 的影响。它还交换了ViewState

因为我们在 2016 年,我想说你应该开始考虑学习普通的 AJAX 或使用一些第三方框架(至少)像 jQuery 来执行 AJAX 调用,这些调用与数据一起利用良好的关注点分离优化您的客户端-服务器通信。

它的MSDN article 状态:

ASP.NET UpdatePanel 控件使您能够构建丰富的、以客户端为中心的 网络应用程序。通过使用 UpdatePanel 控件,您可以刷新 页面的选定部分,而不是刷新整个页面 回发。这称为执行部分页面更新。一个 包含 ScriptManager 控件和一个或多个的 ASP.NET 网页 UpdatePanel 控件可以自动参与分页 更新,没有自定义客户端脚本

.

【讨论】:

  • Since we're in 2015 - 还是:-)?
  • @DarinDimitrov Omg,你会否决我的回答,不是吗? :((((((我要解决这个问题;P
  • 当然,这是不正确的:-D +1 顺便说一句,以获得一个好的答案。
  • @DarinDimitrov NoOOOOOooooOOoo(来自地下室的声音)
  • @DarinDimitrov 谢谢。我们仍然需要修复 10 多年前 ASP.NET AJAX 造成的破坏……懒人的 AJAX :(
【解决方案2】:

感谢大家尝试回答我的问题。 但我的次要问题是我需要学习纯ajax, 我的第一个问题是为什么我的 asyncpostbacks 如此繁重,我是否将所有页面(包括部分字段)放入一个更新面板中,答案是我需要将每个部分更新分隔在多个更新面板中。

【讨论】:

    猜你喜欢
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-01
    • 1970-01-01
    • 2017-07-24
    相关资源
    最近更新 更多