【问题标题】:Regarding UpdatePanel internal?关于 UpdatePanel 内部?
【发布时间】:2011-04-21 18:46:59
【问题描述】:

假设我在页面上有很多重控制。例如,我在页面上填充了三个gridview,一个gridview & 按钮位于更新面板内。从这个场景我们可以理解,页面上会有巨大的viewstate。所以我想知道,如果我单击更新面板内的按钮,那么所有视图状态都将在部分回发期间提交到服务器。如果巨大的视图状态提交到服务器并返回到客户端,那么部分回发的优势是什么,因为响应时间会更慢。所以告诉我如何调整只需要的东西只会提交给服务器的代码。详细讨论部分回发的概念,因此我们可以采取正确的行动来获得良好的性能。谢谢。

【问题讨论】:

    标签: asp.net


    【解决方案1】:
    【解决方案2】:

    请务必记住,UpdatePanel 的部分回发会在每个异步请求上调用整个页面的生命周期。

    请查看以下链接了解更新面板的优缺点。

    Why ASP.NET AJAX UpdatePanels are dangerous

    Why you should not place your whole site in an UpdatePanel

    Are you making these 3 common ASP.NET AJAX mistakes?

    【讨论】:

      【解决方案3】:

      所以我想知道,如果我点击更新面板内的按钮,那么所有视图状态都将在部分回发期间提交到服务器

      是的,它会的。整个页面的视图状态在部分页面回发时(全部)传输到服务器,新的视图状态在响应时从服务器(全部)发送回客户端。

      我建议您在进行部分页面回发时使用Fiddler 之类的工具来检查浏览器和服务器之间的 HTTP 流量。本文提供了使用 Fiddler 的概述 - Troubleshooting Website Problems by Examining the HTTP Traffic

      简而言之,UpdatePanel 旨在作为一种快速而肮脏的方式来获取部分页面回发,而无需担心客户端脚本或在服务器上编写逻辑来专门处理部分页面回发。正如您所发现的,这种简单性是有代价的。 :-)

      为了更好地控制在部分页面回发中发送到服务器和从服务器发送的内容,您需要编写客户端脚本并创建服务器端方法或服务来处理 Ajax 请求。这些文章提供了提供此类功能的各种技术:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-20
        • 2011-07-27
        相关资源
        最近更新 更多