繁体   English   中英

获取大json数据结果asp.net MVC

[英]Getting Big json data result asp.net mvc

我正在使用asp.net mvc。 该项目是基于地图的项目。 我有一个返回大json数据的操作方法。

    public JsonResult MemberLocations()
    {
        var members = memberRepository.GetAll();

        var result = new { members };

        var jsonresult = Json(result, JsonRequestBehavior.AllowGet);
        jsonresult.MaxJsonLength = 500000000;

        return jsonresult;
    }

此方法返回成员位置。

[{memberX:"132.45", memberY:"212.21"}, {memberX:"112.45", memberY:"113.11"},........]

json数据具有45.000点(x,y)对。 我在地图上指出了这一点。 查询结果来得很晚。 (我正在使用javascript ajax请求。)

如何解决数据获取机制。 您解决了这样的问题吗?

您需要对此功能进行性能分析,其中的一部分需要花费更多时间。 发送大小为45的JSON对象数组不会花费更多时间。 似乎获取数据“ memberRepository.GetAll()”可能要花费更多时间。

首先,您应该检查是否真的是45k点的传输降低了应用程序的速度,还是您的数据检索。 只需在memberRepository.GetAll();的调用周围使用秒表memberRepository.GetAll(); 并在提琴手中测量响应时间,以评估检索数据所花费的时间百分比。

通常,您实际上不应该向客户端发送太多数据。 通常会导致不良的用户体验,尤其是在速度较慢的设备(移动设备)上。

也许您必须问自己,为什么必须向客户发送45k坐标?

您要一次在地图上显示所有图钉吗? 真? 如果没有,则仅发送应在缩放级别/查看端口显示的内容...

如果仍然需要渲染那么多数据,请使用其他技术来渲染它,例如在服务器上渲染图块。

许多LatLong坐标的另一种选择是对数据进行编码,这将减小大小。 例如,可以使用此Google算法实现目标

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM