优化ASP.NET网站的性能

时间:2009-09-17 12:25:43

标签: asp.net performance

我们目前正在尝试优化基于ASP.NET的网站的性能,该网站已经开发了很长时间。我们正在使用带有UpdatePanel等的MS Ajax。 ComponentArt也是图片的一部分。

页面加载方法非常繁重,我们正试图从这里修剪一些脂肪。有没有什么办法可以避免在更新面板中的控件部分回发期间调用页面加载。这是否可行而不妨碍页面上的其他功能?

与我们想要达到的目标最接近的是c# updatepanel with timer page_load。但是我们不想明确检查事件目标,因为它们有很多。

4 个答案:

答案 0 :(得分:1)

很抱歉,每次向服务器发出请求(AJAX或其他)都会触发整个页面生命周期 - 您需要找到一种好方法来确定您是在处理AJAX请求还是整页回发。

http://forums.asp.net/p/1089247/1629084.aspx#1629084看起来可能对你有帮助,所以例如你会想要这样的东西:

protected void Page_Load(object sender, EventArgs e)
{
    if(!ScriptManager.GetCurrent(this).IsInAsyncPostBack)
    {
        // This is a normal (i.e. full) postback
    }
}

答案 1 :(得分:0)

每次回发都会调用页面加载方法,包括第一次加载页面。

您可以使用IsPostBack属性来确定它是第一次加载页面还是第二次加载。将您想要在if语句中运行一次的所有逻辑放在一起。

例如

if (!IsPostBack)
{
   // Do stuff on the first page load only
}

答案 2 :(得分:0)

您可以使用

检查是否正在请求部分渲染
void Page_Load(object sender, EventArgs e)
{
    if (!ScriptManager.GetCurrent(this).IsInAsyncPostBack)
    {
        // Do stuff only needed for full rendering here
    }
}

答案 3 :(得分:0)

不知怎的,我错过了回复此处的回复。非常感谢投入的人!

“IsInAsyncPostBack”就是我所需要的。但在对该项目进行彻底分析之后,我得出结论认为,以这种方式进行优化太过于复杂,因为它最初并不是以这种方式设计的。已经提交了我的建议来查看现有的前端代码库并切换到Silverlight或Flex。

再次感谢,对于延迟回复感到抱歉。