更新面板工作非常慢

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

它的工作原理但速度极慢,而且在FF上有更多我有给定的错误:

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

updatePanel中包含其他字段的3个复选框

每个字段都在dl标记中,其中runat="server>

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

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

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

谢谢你的任何提示,

哦,我正在使用ASP.Net并且不能升级这个项目。

谢谢你的帮助,再见

如果没有要查看的代码,这里的一般事情会使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&the = state + information + is+++++++++++++++++++++++++++++ 页面+和+可能被+ +损坏

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

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

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

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

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

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