ASP。 NET C#Web应用程序性能问题

时间:2017-02-14 05:29:17

标签: c# jquery asp.net .net web

我在一个从后端C#代码生成的表中有一个带有40 ++下拉列表的ASPX页面,如下所示: Drop Down Lists

这些下拉列表可以通过以下帮助第三方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("--", ""));

}

1 个答案:

答案 0 :(得分:0)

我的提示是缓存数据。检查可以缓存40个下拉列表中的哪一个,从您不需要从数据库获取数据但从缓存中使用的数据。它将为您节省一些时间并减少渲染所花费的时间。另请检查使用OutputCache的可能性。

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