2009-09-17 40 views
0

我們目前正在嘗試優化基於ASP.NET的網站的性能,該網站已經開發了相當長的時間。我們使用MS Ajax和UpdatePanel等。 ComponentArt也是圖片的一部分。優化ASP.NET網站的性能

頁面加載方法非常繁重,我們正試圖從這裏修剪一些脂肪。有沒有什麼辦法可以避免在更新面板中的控件的部分回發期間調用頁面加載。這完全可能,而不會妨礙頁面上的其他功能?

最接近我們試圖實現的線程是c# updatepanel with timer page_load。但我們不希望明確檢查事件目標,因爲有幾十個。

回答

1

對不起,到服務器的每請求(AJAX或其他方式)觸發整個頁面生命週期 - 你需要找到確定,如果你正在處理一個AJAX請求或一個很好的方式整頁回發。

http://forums.asp.net/p/1089247/1629084.aspx#1629084看起來像它可能會幫助你,所以例如你想是這樣的:如果通過使用

void Page_Load(object sender, EventArgs e) 
{ 
    if (!ScriptManager.GetCurrent(this).IsInAsyncPostBack) 
    { 
     // Do stuff only needed for full rendering here 
    } 
} 
0

頁面加載方法在每次回發時都會調用,包括首次加載頁面時。

您可以使用IsPostBack屬性確定是第一次加載頁面還是第二次。把你只想運行一次的所有邏輯放在if語句中。

例如

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

您可以檢查迴應這裏的答覆。非常感謝輸入的人!

「IsInAsyncPostBack」是我所需要的。但是,在徹底分析了這個項目後,我得出結論認爲,以這種方式進行優化太過複雜,因爲它最初的設計並不是以這種方式實現的。已經提交我的建議來查找現有的前端代碼庫並切換到Silverlight或Flex。

再次感謝並對延遲迴復感到抱歉。

0

不知怎的,我錯過了被請求的部分渲染

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

這不是一個論壇 - 沒有壓力回覆,但總是很高興聽到最後的結果! :-) – Justin 2011-03-22 09:40:25

+0

@Justin:我當時沒有接受我轉向Silverlight的建議,我們最終使用了Red Gate的ANTS性能分析器,它工作得很好。但即使在實施性能優化​​之後,該網站仍需要花費十年才能加載。最終,更高的權力決定使用Silverlight。我仍然在看到發生的事情:) – atlantis 2012-01-22 00:46:17