0

我正在使用 javascript 库 JQGrid 来显示结果列表。我想尽我所能挤出最后一点性能提升。我正在使用 JQGrid url 属性来调用 ASP.NET MVC ActionMethod。

在操作方法中,我进行查询,然后加载具有 3 个 int 属性和 1 个集合属性的匿名对象:

public JsonResult GetDataRows(int dataId)
{
    IEnumerable myDataCollection = linqDB.DataRows.Where(i => i == dataId);
    var data = new
    {
        page = 1,
        total = 1,
        records = 3,
        rows = myDataCollection.ToList();
    };
    return Json(data, JsonRequestBehavior.AllowGet);
}

MVC Json 方法是将此数据序列化回 javascript 客户端脚本的最快方法吗?有没有更快的东西。

4

1 回答 1

1

我查看了 MVC 框架的内部结构,看起来 JSON 帮助器背后是 JavascriptSerializer。在进行一些测试时,我达到了最大有效载荷。

因为我们已经有了 Newtonsoft JSON.NET 库,所以我使用它的序列化程序添加了一个自定义 ActionResult。只是使用它来写入浏览器,而不是使用它来序列化任何 JSON 输入......但就是这样。这是使用替代序列化程序的 ActionResult 覆盖的链接。

Json.NET 动作结果

虽然这个序列化器显然比标准序列化器快,但 Microsoft WebAPI 使用 JSON.NET 的事实让我认为这个未来证明了这一点。然而,根据我在网络上的搜索和阅读,听起来 ServiceStack.Text 序列化程序是最好的。这显然源自 ProtoBuf-net 序列化程序。

于 2013-12-04T11:12:25.977 回答