【问题标题】:ASP.NET WebAPI and jQuery with large dataset (json)具有大型数据集 (json) 的 ASP.NET WebAPI 和 jQuery
【发布时间】:2018-08-09 03:05:32
【问题描述】:

我有一个使用 C# 在 ASP.NET MVC 5.0 中开发的服务器端 Web API,它会从 SQL Server 后端读取大量 JSON 格式的数据(~25MB)。在我的 jQuery 客户端中调用此 API 时,请求/响应已成功完成,但需要大约 5 分钟才能在 HTML 页面中呈现结果(报告)。

我想知道您是否有模式或代码 sn-p,我可以在其中以块(或流)的形式下载数据,这样我就不必在页面呈现之前等待整个 5 分钟完成报告。

提前致谢!

【问题讨论】:

  • 您是否检查过数据库查询获取数据所需的时间?
  • 从服务器端生成结果没有问题,SQL profile 生成结果集只用了
  • 正如我们所说,现在的大小约为 48MB,因为每天,数据都在增长

标签: jquery json sql-server asp.net-web-api


【解决方案1】:

在您开始流式传输之前,我有一些提高性能的建议。

1- 尝试减少有效负载。您可以通过使用属性的小别名来做到这一点。例如。

[JsonProperty(PropertyName = "mbpn")]
 public string MyBigPropertyName{ get; set; }

这将大大减少您的整体负载 (25+ MB)。我有个人经验,我的数据从 60 MB 减少到 6 MB。

2- 选择一个快速的JSON 序列化程序。可以查看性能对比here

3- 在 Clint 方面,不要一次性绑定整个数据,而是以块的形式附加 DOM。

4- 客户端的用户虚拟化。

如果你还想流式传输,可以查看link

【讨论】:

  • 感谢您的建议和推荐链接。
【解决方案2】:

我找到了一个对我有帮助的插件,它叫 jsonpipe,来自https://github.com/eBay/jsonpipe

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多