我正在使用javascript库JQGrid来显示结果列表。我想尽可能地挤出每一点性能增益。我正在使用JQGrid url属性来调用ASP.NET MVC ActionMethod。
在action方法中,我执行查询,然后加载一个具有3个int属性和1个collection属性的匿名对象:
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客户端脚本的最快方法吗?有什么更快的东西。
答案 0 :(得分:1)
我看了一下MVC框架的封面,看起来JSON助手背后是JavascriptSerializer。在做一些测试时,我达到了最大有效载荷。
由于我们已经有了Newtonsoft JSON.NET库,因此我使用其序列化程序添加了一个自定义ActionResult。只是使用它写入浏览器而不是使用它来序列化任何JSON输入......但那就是。以下是ActionResult覆盖的链接,以使用备用序列化器。
虽然这个序列化程序显然比标准程序化程序快,但是Microsoft WebAPI使用JSON.NET这一事实让我觉得这个未来证明了这一点。然而,基于我在网上搜索和阅读,听起来像ServiceStack.Text序列化器是最好的。这显然来自ProtoBuf-net序列化器。