【发布时间】:2013-04-04 19:18:20
【问题描述】:
我目前正在处理一个具有大型数据集的 .NET (3.5) 页面,性能是坐在 2 个不同位置(相隔 12 小时)的用户的主要关注点。
目标和要求:
- 我有一个大约 2500 条记录 x 30 列的结果集。
- 显示为带有客户端排序和大量单元格格式的表格视图。
- 在相隔 12 小时的两个不同位置加载时间相当快(一个位于网络浏览器旁边,另一个位于地球另一端的网络服务器)。
我尝试了 2 种不同的方法,但无法满足两个用户。到目前为止,这是我尝试过的:
- 客户端网格
- 优点:
- 通过线路发送的较小数据包; Web 服务器正在发送
- 缺点:
- 生成网格的 Javascript/JQuery 过程需要 10 到 15 秒(不定)。
总结:客户端网格有利于远离网络服务器距离的用户。但是,对于坐在服务器旁边的用户而言,情况并非如此。现在坐在服务器旁边的用户将不得不坐下来等待 JQuery/Javascript 构建表。
- 服务器端网格
- 优点:
- 在 Web 服务器(服务器端)上完成大多数标记(如果不是全部标记)的渲染速度更快。
- 缺点:
- 通过线路发送的大数据包; Web 服务器正在发送 3.5 - 5 MB。通过网络慢得多。 (检索 3.7 MB 的页面大约需要 30 多秒)
总结:服务器端网格对坐在旁边网络服务器的用户很有帮助(因为它几乎是瞬时加载的——3 MB 的空间只需 1 秒)。同样,对于坐在地球另一端的用户来说,网络传输会受到影响 - 3.MB 页面需要 30 多秒。
经过谷歌搜索和实验;对于如何让这两个用户都满意,我仍然摸不着头脑。
*注意:我决定不包含任何源代码,因为它不会以任何可能的方式帮助您。
我知道没有一种适合所有解决方案的解决方案,但我正在寻找至少能够满足这两个用户的中间立场的解决方案。
一般来说,至少,我想给用户一个页面已经“加载”(快速)的印象——在所有数据到达之前开始渲染;尽管它可能仍在加载数据。 IE。也许无限滚动。
我正在寻找创意;因此,如果您的建议包括将服务器移动到全球的一半;增加您的带宽或任何其他牵强的想法;如果您对自己的想法保密,我将不胜感激。
谢谢。
D
【问题讨论】:
标签: c# asp.net performance networking large-data