2017-02-14 68 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的可能性。

可能值得的另一件事是检查数据库性能。检查是否有一些可以归档的旧数据。还要检查是否有任何缺失的索引,以及查询是否仅返回所需的数据,而不是表中的所有字段。