Json 如何将非常大的阵列发送到客户端浏览器?
我的MVC应用程序中有一个非常大的数组(2000万个数字,一个sql查询的输出),我需要将它发送到客户端浏览器(它将使用webGL在地图上可视化,用户应该在本地处理数据)。发送数据的最佳方法是什么?(请不要认为这是个坏主意!我在寻找这个具体问题的答案,而不是其他建议) 这是我当前的代码(使用ajax调用),但当数组大小超过300万时,我会收到outofmemory异常。序列化(stringbuilder?)似乎失败了Json 如何将非常大的阵列发送到客户端浏览器?,json,asp.net-mvc,Json,Asp.net Mvc,我的MVC应用程序中有一个非常大的数组(2000万个数字,一个sql查询的输出),我需要将它发送到客户端浏览器(它将使用webGL在地图上可视化,用户应该在本地处理数据)。发送数据的最佳方法是什么?(请不要认为这是个坏主意!我在寻找这个具体问题的答案,而不是其他建议) 这是我当前的代码(使用ajax调用),但当数组大小超过300万时,我会收到outofmemory异常。序列化(stringbuilder?)似乎失败了 List results=DomainModel.GetPoints(); J
List results=DomainModel.GetPoints();
JsonResult=Json(results,JsonRequestBehavior.AllowGet);
result.MaxJsonLength=Int32.MaxValue;
返回结果;
我对web编程/javascript/MVC没有太多经验。过去24小时我一直在研究,但没有取得任何进展,因此我需要一个提示/示例代码来继续我的研究。不,不,不,您没有向浏览器发送那么多信息:
编辑。另一种选择是要求用户使用至少16GB内存的机器,或者使用任何内存大小的机器来处理您的海量数据。我完全理解您的担忧,但此应用程序的用户具有非常好和可靠的internet访问,我不喜欢使用平铺,除非我观察到浏览器崩溃。关于我的实际问题有什么建议吗?请看我回答中的第1点,你确实观察到了崩溃,除非你只发送一段巨大的数据,否则你无法避免崩溃。或者,指导用户使用ram大于16GB的机器(或者任何ram大小都可以处理大量数据):)很可能与观察不同!我要求我的用户获得256GB的RAM,如果这能让我们开始讨论我的问题的答案。更新了我的答案,加入了这种RAM“方法”:@MattMan,我认为cristik试图说明的一点是,web浏览器一开始就不是这个应用程序的合适平台。要求用户拥有比大多数服务器更多的RAM是一个极端的系统要求。此外,它还要求用户拥有64位web浏览器(仍然不是无处不在的),这些浏览器针对此类需求进行了优化(我不知道有)。
List<double> results = DomainModel.GetPoints();
JsonResult result = Json(results, JsonRequestBehavior.AllowGet);
result.MaxJsonLength = Int32.MaxValue;
return result;