更新面板工作非常慢
我正在编写一个用户可以注册的应用程序。 注册一个选项可以选择几个选项,根据这些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页面或更新面板,而在于您的数据库查询。 然后,您需要对查询进行概要分析,并检查执行所花费的时间。 在这种情况下,方法是在数据库级别微调您的查询。
- Visual Studio 2013“中断处理的exception”不起作用,而不是破坏
- 导致此错误的原因是什么? 执行处理程序’System.Web.Mvc.HttpHandlerUtil + ServerExecuteHttpHandlerWrapper’的子请求时出错
- HttpContext.Current.User.Identity.Name如何知道存在哪些用户名?
- Response.Flush()抛出System.Web.HttpException
- 使用c#代码动态创建javascript数组
- 如何从ASP.NET页面获取当前登录的Windows帐户?
- 持久保存到Azure表存储时使用POCO
- Visual Studio 2012条件捆绑
- 条件陈述的区别