asp.net - asp.net updatePanels 的替代方案

标签 asp.net ajax updatepanel

我正在审查一个 Web 应用程序已完成 90%,但速度非常慢,即使在本地环境(Web 服务器和数据库)中,事务也可能需要 5-10 秒才能完成。这种延迟的原因是它到处都使用更新面板,我的意思是在所有数据库交互的 99.9% 中。 我可以选择哪些选项来加速该应用程序而无需重写整个应用程序?我的意思是,我不介意在这里或那里改变一些东西,但是有很多功能依赖于这些事务(更新面板)。

最佳答案

根据经验,ViewState 通常对 UpdatePanels 和 AJAX 的性能影响最大,因为每次进行往返时,ViewState 中的所有数据都必须序列化并打包到 XmlHttpRequest(s) 中并通过网络发送。

  1. 尽可能减少 ViewState(对于在 aspx 页面上定义的标签等控件关闭它,并且在往返期间不会更改 - 设置属性 EnableViewState="False"这些)

  2. 最小化 UpdatePanel 的范围。我的意思是尽可能减少面板内的控件数量。如果某些控件不需要在ajax请求期间更新,请将它们从UpdatePanel中取出以减少客户端开销。

  3. 考虑到默认情况下 UpdatePanel 是“连接的”这一事实,这意味着在每次往返期间,所有 UpdatePanel 都将运行其更新功能,即使只需要更改一个面板。要解决此问题,请尝试使用 UpdateMode="Conditional" 属性。然后,您被迫仅在必要时触发多个面板进行更新。

这里有一个关于 UpdatePanel 用法的很好的讨论: One Update Panel vs. Multiple Update Panels

总的来说,我同意其他人的观点,似乎 AJAX 可能不是您唯一的问题。您可能需要分析应用程序和数据库性能,以确保您专注于正确的领域。

关于asp.net - asp.net updatePanels 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1944574/

相关文章:

c# - DropDownList.DataTextField 不能绑定(bind)到数据集?

asp.net - 如何使用 eval 应用特定的日期格式?

c# - AJAX 调用不从 WebMethod 返回 JSON 对象

c# - 使用 ClientScriptManager 更新面板

c# - 为什么下载后文件类型变了?

c# - 在保存到数据库方法之后,存储库模式应该如何更新对象的 ID?

css - 如何更正在输入标签后面滚动的自动完成 div

javascript - MVC - 链接到另一个 Controller /操作时出现问题

c# - 使用 UpdatePanel 删除行后更新/刷新 Gridview。 ASP.NET C# AJAX

c# - 异步添加内容(线程+ajax)