2009-10-13 76 views
1

當我使用AJAX調用一個頁面時,一切都進行的很快。但是,如果我有一個頁面(用於測試目的)使用下面的代碼:C#ASP.NET緩慢的AJAX加載

for(int i = 0; i < int.MaxValue; i++) 
{} 

頁面加載較長,這是顯而易見的。但是,當我加載一個僅在標籤上設置文本的頁面時,需要更長的時間(大約5秒),但如果在調用測試頁(使用for循環)之前調用此頁,情況並非如此。

所以,除了我打電話給測試頁時,所有的加載速度都很快。從那裏的每一頁加載緩慢。怎麼來的?

回答

0

我找到了解決方案。這是糟糕的編程。通過AJAX,我加載了Web用戶控件(ascx文件)。我將控件保存在ViewState中,並在我的頁面加載中再次加載這些控件。因此,每頁加載前一個用戶控件已加載。通過在page_load中刪除這個方法,我的問題就解決了。

感謝您的努力。

0

如果...下一個循環位於頁面的頁面加載中,則所有ajax查詢都必須運行相同的循環;您應該將任何長時間運行的進程放在if語句中,然後在後續回發期間將其保存在視圖狀態中。

+0

是的,for循環位於測試頁的page_load事件中。但我不希望將這些數據保存在ViewState中。我不能設置if(!isPostBackData),因爲代碼沒有執行。 – Martijn 2009-10-13 14:27:50