我有一个使用C#在ASP.NET MVC 5.0中开发的服务器端Web API,它从SQL Server后端读取JSON格式(~25MB)的大量数据。在我的jQuery客户端内部调用此API时,请求/响应已成功完成,但在HTML页面中呈现结果(报告)之前需要大约5分钟。
我想寻找一个模式或代码片段,我可以在其中下载数据(或流),所以我不必等待整个5分钟完成页面呈现报告之前。
提前致谢!
在您进行流式传输之前,我几乎没有提高性能的建议。
1-尝试减少有效负载。您可以使用属性的小别名来执行此操作。例如。
[JsonProperty(PropertyName = "mbpn")] public string MyBigPropertyName{ get; set; }
这将大大减少您的总有效负载(25 + MB)。我有个人经验,我的数据从60 MB减少到6 MB。
2-选择快速的JSON序列化器。你可以查看性能比较here
JSON
3-在Clint端,不要一次性绑定整个数据,将DOM附加在块中。
4-客户端的用户虚拟化。
如果你仍然想要流媒体,你可以查看这个link。
我找到了一个帮助我的插件,它叫做jsonpipe,来自https://github.com/eBay/jsonpipe