c# - 网络性能问题

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

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

目标和要求:

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

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

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

总结:客户端网格对于坐在离网络服务器距离的用户来说是有益的。但是,对于坐在服务器旁边的用户而言,情况并非如此。现在,坐在服务器旁边的用户将不得不坐下来等待 JQuery/Javascript 构建表格。

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

总结:服务器端网格对于坐在网络服务器旁边的用户来说是有益的(因为它加载几乎是即时的 - 3 MB 仅需 1 秒)。同样,对于坐在地球另一端的用户来说,网络传输也很痛苦 - 3.MB 页面需要 30 多秒。

经过谷歌搜索和实验;我还在为如何让这两个用户都满意而绞尽脑汁。

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

我知道没有适合所有情况的解决方案,但我正在寻找至少能达到中间立场以满足这两个用户的解决方案。

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

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

谢谢。

D

最佳答案

  1. 您可以使用 server side paging在您的网格上 & 只需加载 10 个条目 每页
  2. 如果用户需要,您可以提供“下载为 pdf”文件选项 查看整个网格

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

关于c# - 网络性能问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15968371/

相关文章:

c# - 如何使用 MVC 6 解决 System.InvalidOperationException - 相同的模板

c - 快速替换数组中元素的方法 - C

performance - 如何在 d3 中缓存 geojson 文件?

node.js - 文件较小的 node.js HTTP 服务器响应速度慢得多

c# - ASP.NET 网络服务

c# - 如何从单选按钮列表中获取选定的单选按钮

c# - 如何根据值选择ItemTemplate?

c# - 存储表 Azure 中特定字段的过滤器类型 %like%

c# - Azure Web API 访问 : Which URL should I use, Web 服务 URL 或网关 URL?

javascript - JSON 从 .NEt WCF 到 JavaScript 数组数组