【问题标题】:ASP. NET C# Web Application Performance IssuesASP。 NET C# Web 应用程序性能问题
【发布时间】:2017-07-02 07:03:28
【问题描述】:

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

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

}

【问题讨论】:

  • 能否把后端代码放上来。
  • 同时尝试分析您的数据库调用
  • @NayanKatkani 我编辑了帖子。

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


【解决方案1】:

我的建议是缓存数据。检查 40 个下拉列表中的哪一个可以缓存,您不需要从数据库中获取数据,而是使用缓存中的数据。它将为您节省几秒钟并减少渲染所花费的时间。还要检查使用 OutputCache 的可能性。

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

【讨论】:

    猜你喜欢
    • 2012-08-22
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 2017-08-07
    • 1970-01-01
    相关资源
    最近更新 更多