如何通过许多数据库请求加速大型网页?

时间:2014-11-20 08:59:59

标签: javascript c# html asp.net iis-7

平台:Asp.Net(网站),C#,SQL Server 2012,Ajax。

我正在开发一个Asp.Net Web应用程序它将被许多用户使用(可能大约5000或更多)。我有一个网页,我在其上显示大约200到500个网格行,每行包含大约20到25个控件,如TextBox,Dropdown,Link Button&一些使用JavaScript显示/隐藏信息的HTML链接。

它基本上是一个数据输入页面,用户可以在其中编辑/添加记录和终于救了他们。

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

我为加载此HTML做了什么?

1我从DB中获取组合项目列表,然后将其分解为层次结构视图,然后我遍历每个项目&创建HTML字符串。在每个项目中有许多子项目,例如在DDL中显示获取工作人员列表,也为每个工作人员获取距离等(再次,我为每个子处理命中DB)。

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

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

由于

3 个答案:

答案 0 :(得分:0)

这看起来像是一个有很多功能的大页面。你如何管理你的编辑?您是否允许用户对多行进行多项更改,然后提交或在每行编辑后提交到服务器?

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

我认为是:

  • -ajax
  • -paging(按页面分割您的数据结果)
  • -data caching
  • - 创建可能有其他数据加载的当前行(基本数据集)的摘要视图

这是我头脑中的第一件事。