Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在有许多数据库请求的情况下加快大型网页的速度?_Javascript_C#_Html_Asp.net_Iis 7 - Fatal编程技术网

Javascript 如何在有许多数据库请求的情况下加快大型网页的速度?

Javascript 如何在有许多数据库请求的情况下加快大型网页的速度?,javascript,c#,html,asp.net,iis-7,Javascript,C#,Html,Asp.net,Iis 7,平台:Asp.Net(网站)、C#、SQLServer2012、Ajax 我正在开发一个Asp.NETWeb应用程序,它将被许多用户使用(可能是5000或更多)。我有一个网页,上面显示大约200到500行网格,每行包含大约20到25个控件,如TextBox、Dropdown、Link Button和一些使用JavaScript显示/隐藏信息的HTML链接 它基本上是一个数据输入页面,用户可以在其中编辑/添加记录并最终保存它们 每次加载页面时,我都会重新加载HTML(因为我已经将这个文本控件的视图

平台:Asp.Net(网站)、C#、SQLServer2012、Ajax

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

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

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

我如何加载这个HTML

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

其中一些操作包括非常大的DB表(超过50000行),我已经对这些存储过程进行了调优,以避免使用like/Replace/etc操作符

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


谢谢

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

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


我希望这为您指明了正确的方向。

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

我想,您在这里还没有找到问题的答案。相反,解决这个问题有一些共同的方法

我认为是:

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

这是我想到的第一件事。

为什么不分页500个网格行?这是WPF应用程序,不是Web应用程序。最好是分页结果,呈现一个带有编辑按钮(可能是弹出窗口?)的平面html表,并仅保存所选项目。见AngularJS.Hi。我们必须显示所有数据,因此无法进行分页。如果您谈论的是在后台获取数据,那么这是一个很好的解决方案,但是如果我们在后台通过ajax获取数据,并且当数据显示在浏览器上时,主要问题浏览器会挂起一秒钟。这不是WPF应用程序。这是一个Web应用程序。现在我允许用户编辑整个内容,然后用户单击按钮保存所有更改。感染您的使用Ajax的建议看起来是该场景的唯一解决方案。我在一小部分上尝试了这个方法&它工作得很好,因为不需要重新加载整个页面。我的意思是现在剩下的唯一问题是如何立即加载第一页上的全部数据。我将告诉你当前的分析。为了在下载速度为12 MBPS的情况下加载整个系统,在第一页加载时下载完整数据需要6-7秒。速度为4-5 MBPS的用户需要12秒。我希望这能进一步优化。如何在5秒钟内完成此操作?页面加载后的操作已经过优化,并且在1秒内完成。当页面首次加载时,如何缩短页面加载时间我已经实现了Y-slow功能。需要帮助改进SQL操作吗?有什么想法吗?我们无法进行分页。我们必须向用户显示所有数据。页面优化后的操作已经过优化,并且使用ajax在1秒内完成。我们也第一次尝试了通过ajax实现整个数据,但是没有ajax也需要同样的时间。请检查以下分析:为了在下载速度为12 MBPS的情况下加载整个系统,在第一页加载时下载完整数据需要6-7秒。速度为4-5 MBPS的用户需要12秒。我希望这能进一步优化。如何在5秒钟内完成此操作?