提高页面加载时的性能

本文关键字:性能 加载 高页面 | 更新日期: 2023-09-27 17:56:50

我有一个.aspx屏幕,在asp:GridView组件中显示一些数据。页面加载时最多可以返回大约 30k 条记录。从 database.IS 中检索 13000 条记录需要 30 秒的时间这么慢还是这么快?我使用存储过程从数据库中检索记录 n 我只查询数据库一次并存储它。然后有一个 foreach 循环需要 2 分钟以上才能执行?因此,加载页面需要 AAPR 4 分钟。

我只是一个初学者 asp.net.你能帮我改善页面加载时的延迟吗?

这是循环结构..我们可以以任何方式优化它吗?

列表 auditList = 检索数据从数据库();//此方法从数据库返回记录

               foreach (Entity obj in auditList)
                {
                    obj.CultSpecificRevisedData = "NULL";
                    obj.CultSpecificPublishedData = "NULL";
                    if (obj.RevisedData != null && obj.RevisedData != "NULL")
                        obj.CultSpecificRevisedData = ConvertToProfileSpecificFormat(Convert.ToDecimal(obj.RevisedData), DecimalSeparator);
                    if (obj.PublishedData != null && obj.PublishedData != "NULL")
                        obj.CultSpecificPublishedData = ConvertToProfileSpecificFormat(Convert.ToDecimal(obj.PublishedData), DecimalSeparator);
                    var yearPart = obj.CalendarYear;
                    var monthPart = string.Empty;
                    var frequencyName = GetEnglishFrequencyBame(frequencyTypeMasId);
                    if (frequencyName == FrequencyType.Monthly)
                    {
                        monthPart = new DateTime(obj.CalendarYear, GetMonthNumber(obj.Month), 1).ToString("MMM");
                        obj.CultSpecificPeriod = monthPart + "-" + yearPart.ToString();
                    }
                    if (frequencyName == FrequencyType.Quarterly)
                    {
                      UserMessage = obj.QuarterName;
                        obj.CultSpecificPeriod = UserMessage + "-" + yearPart.ToString();
                    }
                    else if (frequencyName == FrequencyType.BiAnnually)
                    {
                        UserMessage = obj.SemesterName;
                        obj.CultSpecificPeriod = UserMessage + "-" + yearPart.ToString();
                    }
                    else
                    {
                        obj.CultSpecificPeriod = yearPart.ToString();
                    }

                }

提高页面加载时的性能

页是你的首选。

但你应该解释以下内容:你真的需要30K记录吗?用户通常不会浏览前 10''20 条记录,尝试仅返回前 100''1000 条记录,并提供良好的搜索和筛选功能,从而科学地限制结果集。

我遇到了同样的问题,我知道用户不需要那么多结果,他们需要一种很好的方法来从这些结果中找到他们想要的东西。

当然,这可以与分页合并在一起。

如果分页剂量不适合您的解决方案(出于某种原因) 您不同意所说的内容,请发布一些代码,我们将尽力帮助优化性能。 请记住,有时这是一项非常艰巨的任务。

我会回应关于不需要 30K 记录的评论。研究表明,人类无法真正直观地处理超过 2000 个列表项的任何内容,如果您显示的更多列表项,您实际上是在欺骗用户,鼓励他们获得错误或不完整的数据感。

但是如果你坚持这样做,你要做的是遍历手动设置的记录,使用 Response.Write() 手动编写每一行的 html 并将其发送到浏览器,然后使用计数器时不时地调用 Response.Flush()。如果您的数据层也支持从数据库流式传输数据(即:通过数据读取器),而不是将整个结果集加载到 RAM 中,则加分。