由于网络导致的性能问题

时间:2013-04-12 09:58:41

标签: c# asp.net performance networking large-data

我目前正在开发一个具有大型数据集的.NET(3.5)页面,性能是位于两个不同位置(相隔12小时)的用户主要关注的问题。

目标&要求:

  1. 我的结果大约有2500条记录x 30列。
  2. 显示为带有客户端排序和大量单元格格式的表格视图。
  3. 在相隔12小时的两个不同位置合理快速加载时间(一个位于Web浏览器旁边,另一个位于Web服务器的全球中间位置)。
  4. 我尝试了两种不同的方法,但无法满足两个用户。这是我到目前为止所尝试的内容:

    • 客户端网格
      • 优点:
      • 通过线路发送的数据包较小; Web服务器正在发送< 1 MB。更快地通过网络
      • 缺点:
      • 生成网格的Javascript / JQuery过程需要10到15秒(不同)。

    摘要:客户端网格对于远离Web服务器距离的用户非常有用。但是,对于坐在服务器旁边的用户来说并非如此。现在坐在服务器旁边的用户必须坐下来等待JQuery / Javascript构建表。

    • 服务器端网格
      • 优点:
      • 在Web服务器(服务器端)上完成大多数(如果不是全部)标记的渲染速度更快。
      • 缺点:
      • 通过线路发送的大数据包; Web服务器发送3.5 - 5 MB。通过网络慢得多。 (检索3.7 MB的页面需要大约30秒以上)

    摘要:服务器端网格对于坐在下一个到Web服务器的用户是有益的(因为它几乎瞬间加载 - 3 MB的时间仅为1秒)。同样地,对于坐在地球另一侧的用户来说,网络传输会受到影响 - 对于3.MB页面来说会超过30秒。

    谷歌搜索和实验后;我仍然不知道如何让这两个用户都满意。

    *注意:我决定不包含任何源代码,因为它不会以任何可能的方式为您提供帮助。

    我知道没有一种尺寸适合所有解决方案,但我正在寻找能够满足这两个用户的至少中间立场的东西。

    一般来说,至少,我想给用户一个页面被“加载”(快速)的印象 - 在所有数据到达之前开始渲染;虽然它可能仍在加载数据。即也许无限滚动。

    我正在寻找创意;因此,如果您的建议包括将服务器移动到全球各地;增加你的带宽或任何其他牵强附会的想法;如果你把自己的想法留给自己,我将不胜感激。

    感谢。

    d

3 个答案:

答案 0 :(得分:2)

  1. 您可以在网格上使用server side paging&只需加载10个条目 每页
  2. 如果用户需要,您可以提供“下载为pdf”文件选项 查看整个网格
  3. 您可以进一步使用带有服务器端分页的客户端网格来改善访问时间。我认为使用服务器端分页的gridview会做得很好。如果您需要一次显示所有记录,那么这是一个单独的问题。

答案 1 :(得分:2)

服务器端分页?

您说创意,那么您是否已开启gzip来压缩您发送的数据?另外,尝试缩小html?

答案 2 :(得分:1)

我已成功使用DHTMLX Grid进行此项使用。它具有无限滚动和分页功能。只请求页面/可见滚动区域上显示的数据(减少在任何给定时间通过线路发送的数据量。它也可以自定义,并且有许多其他功能,您可能会觉得有用。