当我加载100,000行,其中包含20列intnt kendo网格时,我收到500错误。
所以我检查了json的响应,让内存超出异常。这是以下代码。
In the webconfig,have set
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="500000000"/>
</webServices>
</scripting>
</system.web.extensions>
This is the mvc controller.
public JsonResult JqueryKendoGridVirtualScrolling()
{
using (var s = new KendoEntities())
{
var x = s.premiumsbytreaties.ToList().Take(100000);
if (x != null)
{
var jsonResult = Json(x, JsonRequestBehavior.AllowGet);
jsonResult.MaxJsonLength = int.MaxValue;
return jsonResult;
//return Json(x.ToList(), JsonRequestBehavior.AllowGet);
}
else
{
return null;
}
};
}
It is working fine for 6 columns.But not working for 15 columns.
工作正常,有20,000,000条记录,请参阅输出
答案 0 :(得分:0)
这里有两个问题:
对于HTTP响应的JSON内容,500,000,000个字符太长。这需要时间来通过网络,这是在客户端浏览器可以解析和处理数据之前(花费时间和内存)。
其中1%仍然太多。
您不使用Kendo对“Grid / Virtualization of remote data”的支持。
在他们的示例中,操作的第一个参数是[DataSourceRequest] DataSourceRequest request
,然后使用它(使用ToDataSource
扩展方法)来创建响应。
与支持Kendo网格(和其他控件)的AJAX方法一样 这些工作一起传递分页,排序和过滤参数和 在返回之前申请数据。
如果您的数据是合适的数据库提供商的IQueryable<T>
,那么这将是
发生在数据库上。