如何加快具有许多数据库请求的大型网页的速度

How can I speed up large web page with many DB requests?

本文关键字:大型 网页 速度 请求 数据库 何加快 许多      更新时间:2023-09-26

Platform: Asp.Net (Website), C#, SQL Server 2012, Ajax.

我正在开发一个 Asp.Net Web应用程序 它将被许多用户使用(可能约为5000或更多)。我有一个网页,上面显示大约 200 到 500 个网格行,每行包含大约 20 到 25 个控件,如文本框、下拉列表、链接按钮和一些 HTML 链接,以使用 JavaScript 显示/隐藏信息。

它基本上是一个数据输入页面,用户可以在其中编辑/添加记录并最终保存它们。

我在每次页面加载时重新加载 HTML(因为我已将此文本控件的视图状态设置为 false)。在服务器端执行时,通常需要 5 到 8 秒,但它通常在 12 到 18 秒内加载整个内容,但有时大约需要 40 秒到 1 分钟以上(我想这可能是并发问题,但不确定某些用户加载的次数大约在 15 秒内)。

我怎么做才能加载这个 HTML?

首先,我从数据库中获取组合项目的列表,然后将其分解为层次结构视图,然后循环遍历每个项目并创建HTML字符串。在每个项目中都有许多子项目,例如在DDL中显示人员列表,还获取每个员工的距离等(我再次为每个子处理点击DB)。

其中一些操作包括非常大的数据库表(超过 50,000 行),我已经调整了此类存储过程以避免使用 like/Replace/etc 运算符。

请指导我在这种情况下应该采取什么方法?我是否可以使用线程在 Web 应用程序中执行多个操作以减少处理时间?

谢谢

这似乎是一个具有很多功能的大页面。您如何管理编辑?是否允许用户对多行执行多次更改,然后提交,还是在每次行编辑后提交到服务器?

我认为你可以使用JavaScript,

也许可以利用现代HTML5功能,如本地数据等,允许你的用户编辑和查看本地缓存在页面上的数据,然后使用JavaScript将更新的数据推送回服务器。通过使用 Ajax,您可以有选择地仅推送更新的数据,而不是通过回发刷新整个页面。这样,您的用户就可以获得更好的体验,并最大限度地减少来回服务器的数据量。

我希望这能为你指明正确的方向。

我建议将每页的行数限制为 20-30,因为您已经提到您正在显示 200 到 500 个网格行。还可以在网格中创建单独的页面进行编辑,而不是内联编辑,网格中有 20 到 25 个控件可供编辑,因为它会随着行数的增加而增加页面大小。

我想,你还没有在这里找到问题的答案。相反,有解决此问题的常见方法。

我认为是:

  • -阿贾克斯
  • -分页(按页面分隔数据结果)
  • -数据缓存
  • - 为当前行(基本数据集)创建摘要视图,并可以加载其他数据

这是我脑海中浮现的第一件事。