2017-02-14 44 views
0

我有40 ++下拉列表的ASPX頁面,從後端的C#代碼生成的表如下所示: Drop Down ListsASP。 NET C#的Web應用程序性能問題

這些下拉列表可以是搜索的幫助3下面黨jQuery的:當頁面加載它除了

<script src="../Scripts/jquery-1.8.3.min.js" type="text/javascript" ></script> 
<script src="../Scripts/jquery.searchabledropdown-1.0.8.min.js" type="text/javascript"></script> 

一切工作正常速度很慢歷時約20至30秒。

任何意見傢伙?有沒有其他方法或其他更好的野外搜索推薦?

謝謝...

這是後端代碼的總結:

//This chunk build the drop down list in the table 
for (int y = 1; y <= DETAIL_ROW; y++) 
{ 
    DropDownList InternalOrderDDL = new DropDownList(); 
    InternalOrderDDL.ID = "InternalOrderDDL" + y.ToString(); 
    InternalOrderDDL.Width = Unit.Percentage(100); 
    InternalOrderDDL.Attributes.Add("onfocus", "ChangeDropDownWidth(this);"); 
    InternalOrderDDL.Attributes.Add("onblur", "ResetDropDownWidth(this);"); 

    HtmlTableCell InternalOrderCell = new HtmlTableCell(); 
    InternalOrderCell.Controls.Add(InternalOrderDDL); 

    NewRow.Cells.Add(InternalOrderCell); 
    DetailTable.Rows.Add(NewRow); 
} 

//This chunk of code populate the Drop Down List 
DataTable InternalOrderDT = new DataTable(); 

using (SqlConnection Conn = new SqlConnection(CONNECTION_STRING)) 
{ 
    SqlCommand Cmd = new SqlCommand("spActiveInternalOrderRetrieveListByCompany", Conn); 
    Cmd.CommandTimeout = 0; 
    Cmd.CommandType = CommandType.StoredProcedure; 
    Cmd.Parameters.Add("CompanyID", SqlDbType.NVarChar).Value = companyID; 
    Conn.Open(); 
    SqlDataReader Dr = Cmd.ExecuteReader(); 
    InternalOrderDT.Load(Dr); 
    Conn.Close(); 
} 

for (int y = 1; y <= DETAIL_ROW; y++) 
{ 
    DropDownList InternalOrderDDL = DetailTable.FindControl("InternalOrderDDL" + y.ToString()) as DropDownList; 
    InternalOrderDDL.DataTextField = "InternalOrderName"; 
    InternalOrderDDL.DataValueField = "InternalOrderID"; 
    InternalOrderDDL.DataSource = InternalOrderDT; 
    InternalOrderDDL.DataBind(); 
    InternalOrderDDL.Items.Insert(0, new ListItem("--", "")); 

} 
+0

你能否提出後端代碼? –

+0

也嘗試分析您的數據庫調用 – BennyM

+0

@NayanKatkani我已編輯帖子。 – LeonCat

回答

0

我的祕訣是緩存數據。檢查40個下拉列表中的哪一個可以被緩存,從數據中不需要從數據庫獲取數據,而是從緩存中使用。它可以節省您幾秒鐘的時間,並減少渲染所花費的時間。同時檢查使用OutputCache的可能性。

可能值得的另一件事是檢查數據庫性能。檢查是否有一些可以歸檔的舊數據。還要檢查是否有任何缺失的索引,以及查詢是否僅返回所需的數據,而不是表中的所有字段。