首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >asp.net updatePanels的替代方案

asp.net updatePanels的替代方案
EN

Stack Overflow用户
提问于 2009-12-22 14:50:14
回答 3查看 1.7K关注 0票数 2

我正在审查一个web应用程序90%的完成,但它非常慢,即使在本地环境(web服务器和数据库),一个事务可能需要5-10秒才能完成。造成这种延迟的原因是它到处都在使用updatepanel,我的意思是99.9%的数据库交互都使用了updatepanel。我有哪些选项可以在不重写整个应用程序的情况下提高此应用程序的速度?我的意思是,我不介意在这里和那里更改一些东西,但是有很多功能依赖于这些事务(Updatepanel)。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-12-23 04:31:13

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

尽可能地减少

  • ViewState (在aspx页面上定义的标签等控件关闭它,在往返过程中不会改变-在UpdatePanels的作用域上设置属性EnableViewState="False"。我的意思是尽可能减少面板中的控件数量。如果某些控件在ajax请求期间不需要更新,请将它们从UpdatePanels中取出,以减少客户端overhead.

  • Consider,即默认情况下UpdatePanels是“连接的”,这意味着在每个往返过程中,所有UpdatePanels都将通过其更新功能运行,即使只需要更改单个面板。要解决此问题,请尝试使用UpdateMode="Conditional"属性。然后,您将被迫触发多个面板,以便仅在必要时进行更新。

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

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

票数 6
EN

Stack Overflow用户

发布于 2009-12-22 15:54:30

Dave Ward在优化UpdatePanels方面有一个很好的article。以下是你应该理解和使用的主要提示:

即使实际上只更改了一个UpdatePanel,

  1. 页也会完全重新加载。要进行优化,可以使用文章.
  2. 中描述的Request["__EVENTTARGET"] == UpdatePanel1.ClientID提示使用PreRender事件实际填充面板中的数据。因此,您将避免不必要的数据加载。

但是如果你的系统在将来会有很重的负载,最好是使用web服务来设计它,而不是更新面板。

票数 2
EN

Stack Overflow用户

发布于 2009-12-22 15:00:04

你的问题有点不清楚updatepanel中发生了什么。Updatepanels本身通常不会与DB对话,也不会导致任何特定的速度减慢。

您应该分析每个页面加载产生的sql查询(或者使用sql profiler,一些sql profiler,或者只是在您最常见的.NET查询周围设置计时器)。

如果你使用的是火狐和Visual Studio want服务器,你可能想在火狐中禁用ipv6。您可以通过键入about:config if地址栏并将"network.dns.disableIPv6“的值更改为"true”来完成此操作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1944574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档