3

我目前正在处理具有大型数据集的 .NET (3.5) 页面,性能是坐在 2 个不同位置(相隔 12 小时)的用户的主要关注点。

目标和要求:

  1. 我有一个大约 2500 条记录 x 30 列的结果集。
  2. 显示为带有客户端排序和大量单元格格式的表格视图。
  3. 在相隔 12 小时的两个不同位置加载时间相当快(一个位于 Web 浏览器旁边,另一个位于 Web 服务器的半个地球)。

我尝试了 2 种不同的方法,但无法满足两个用户。这是我到目前为止所尝试的:

  • 客户端网格
    • 优点:
    • 通过线路发送的较小数据包;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

4

3 回答 3

2
  1. 您可以在网格上使用服务器端分页,每页只需加载 10 个条目
  2. 如果用户想要查看整个网格,您可以提供“下载为 pdf”文件选项

您可以进一步将客户端网格与服务器端分页一起使用,以缩短访问时间。我认为带有服务器端分页的gridview 就可以了。如果您需要一次显示所有记录,那么这是一个单独的问题。

于 2013-04-12T10:04:20.493 回答
2

服务器端分页?

你说创意,所以你有没有打开 gzip 来压缩你发送的数据?另外,尝试缩小html?

于 2013-04-12T10:07:16.173 回答
1

我已经成功地将DHTMLX Grid用于此用途。它既有无限滚动的能力,也有分页的能力。仅请求页面/可见滚动区域上显示的数据(减少在任何给定时间通过网络发送的数据量。它也非常可定制,并且具有许多您可能会发现有用的其他功能。

于 2013-04-12T10:04:15.143 回答