簡體   English   中英

優化ASP.NET網站的性能

[英]Optimizing performance of an ASP.NET website

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

頁面加載方法非常繁瑣,我們正在嘗試從此處減少一些脂肪。 有什么方法可以避免更新面板中的控件在部分回發期間調用頁面加載。 在不妨礙頁面上其他功能的情況下,這完全有可能嗎?

最接近我們想要實現的線程是帶有計時器page_load的c#updatepanel 但是我們不想顯式地檢查事件目標,因為它們有數十種。

抱歉,對服務器的每個請求(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
    }
}

頁面回發方法會在每個回發(包括頁面第一次加載)時被調用。

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

例如

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

您可以使用來檢查是否請求部分渲染

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

我莫名其妙地錯過了回復這里的答復。 非常感謝你們的投入!

我需要“ IsInAsyncPostBack”。 但是,在對項目進行了徹底分析之后,我得出結論,由於它最初並不是設計為以這種方式運行的,所以它太費時了以致無法以這種方式進行優化。 提交了我的建議以刪除現有的前端代碼庫並切換到Silverlight或Flex。

再次感謝您,我們不便答復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM