更新面板工作非常慢

时间:2011-03-20 08:27:40

标签: c# asp.net updatepanel

我正在编写一个用户可以注册的应用程序。注册一个选项可以选择几个选项,并根据这些regiester字段是否可见,是否需要。 我想到了所有字段都在updatePanel中,当用户更改注册选项时,我会在服务器端设置这些字段的可见性。

它的工作原理但速度非常慢,而且FF上有更多错误:

  

状态信息无效   此页面可能已损坏

其他字段的3个复选框位于updatePanel

每个字段都在runat="server>

的dl标记中

我必须这样做,因为“必需”选项的原因我只是将css类添加到此dl(需要在javascript验证中。如果字段应该可见,我为给定的dl设置visible =“false”然后该字段例如,带回标题的FirstName等在回发后是不可见的。

我做错了吗?为什么它需要这么长时间(在本地主机上约4分钟)而在Firefox中它并没有真正起作用(当我使用调试时我认为该过程在ff上完成没有错误,我根本不明白:)

如果更新Panel太弱,那么更改可见性和向所有dls添加所需类的其他选项。逻辑非常复杂,必须对DB进行查询,因此简单的javascript非常棘手。

感谢任何提示,

哦,我正在使用ASP.Net并且无法升级此项目。

感谢您的帮助, 再见

4 个答案:

答案 0 :(得分:4)

无需查看代码,以下是使UpdatePanel变慢的一般事项:

  • 发布大量表单数据(例如Viewstate)。上传的数据通常比下载数据慢(取决于连接类型,例如上传速度比下载慢5倍的家庭连接)。即使您看不到它,页面上的每个表单字段都会回发到服务器(即使它不在UpdatePanel中)。

我建议您在Firebug中查看您的请求/响应数据,并确保您的异步请求小于5K,并且您的响应不超过20K。

  • 发布UpdatePanel时正在运行的服务器上的慢进程。删除UpdatePanel后,您的代码如何执行?

  • JavaScript错误(你和微软)。以下是我自己使用的已知错误和修复的链接:http://support.microsoft.com/?kbid=2000262

  • 大量的DOM操作(听起来不是这种情况)。

顺便说一句,搜索您报告的错误消息会导致许多可能的原因: http://www.google.com/search?aq=f&sourceid=chrome&ie=UTF-8&q=The+state+information+is+invalid+for+this+page+and+might+be+corrupted

与往常一样,最小化或删除对ViewState的依赖...它是许多问题的根源,并且可以做出糟糕的设计决策。

答案 1 :(得分:1)

您需要将更新面板属性更新模式设置为Conditional而不是Always。限制您放入一个更新面板的控件数量

答案 2 :(得分:0)

您可能需要检查,页面事件等。研究页面指令和属性AutoEventWireup 由于性能是您突出显示的问题,您可能也想检查它。更新面板模式应该是有条件的。 同时检查触发器

答案 3 :(得分:0)

Page directive中尝试使用这些属性值。这始终位于页面顶部。让其他属性像以前一样存在。 更新面板不应该像报告一样慢。

 <%@ Page ViewStateEncryptionMode="Never" EnableViewStateMac="false"
       EnableEventValidation="false" %>

我还想补充一点,如果您提到的数据库查询很复杂,需要很长时间,那么问题不在于aspx页面或更新面板,而在于您的数据库查询。然后,您需要对查询进行概要分析,并检查执行所花费的时间。在这种情况下,方法是在数据库级别微调您的查询。