jquery – Kendo网格:性能问题缓慢

前端之家收集整理的这篇文章主要介绍了jquery – Kendo网格:性能问题缓慢前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
问题是Kendo网格性能下降,当尝试加载1000条记录时,网格需要大约8秒才能加载.我可以看到控制器在3秒内返回json数据,然后kendo网格需要时间来填充.

我有一个500个记录的PageSize并使用了DataSourceRequest,因此每个页面的数据只会从控制器返回.但仍然没有快乐.

任何人都可以请教我如何提高电网性能.

请在下面找到我的代码

@(Html.Kendo().Grid<Model>()
.Name("KendoTestGrid")     
.Columns(columns =>
{

    columns.Bound(p => p.Column5)
          .Width("18%")             
          .ClientTemplate("#= formatResult(format(column5,'')) #")
          .EditorTemplateName("Column5")
          .ClientFooterTemplate("<span href='\\#'  id='total'>Total : </span>");             
    columns.Bound(p => p.Column6)
         .EditorTemplateName("Column6")
         .ClientTemplate("#= format(column6,'') #")                       
         .ClientFooterTemplate("<span href='\\#' id='spanfooter'></span>")             
         .Width("23%");
    columns.Bound(p => p.column7)             
         .ClientTemplate("<span href='\\#'  id='#=Id #'>#= format(Column7,'')#</span>")
         .ClientFooterTemplate("<span href='\\#'  id='spansum'></span>")
         .HtmlAttributes(new { Class = "number" })
         .Width("18%");
    columns.Bound(p => p.column8)
         .EditorTemplateName("column8")            
         .ClientFooterTemplate("Total:")
         .ClientFooterTemplate("<span href='\\#'  id='TotalSum1'></span>")           
         .Width("23%");      
})

.DataSource(dataSource => dataSource
    .Ajax()      
    .Batch(true)
    .ServerOperation(true)      
    .Read(read => read.Action("Action","Controller").Data("getData"))
    .Create(c => c.Action("Action","Controller").Data("getData2"))
    .Update(update => update.Action("Action","Controller").Data("getData3"))
    .PageSize(500) .Events(x => x.DataBound("ongriddatabound")
    .Edit("ongridedit")
    .Change("ongridchange"))   
    .Editable(editing => editing.Mode(Kendo.Mvc.UI.GridEditMode.InCell))

    .Filterable()
    .Groupable()       
    .Sortable()
    .Scrollable()
    .Pageable()
    .Selectable(s => s.Mode(GridSelectionMode.Single).Type(GridSelectionType.Row))
    .Resizable(resize => resize.Columns(true))
    .AutoBind(false)
)

解决方法

我们需要查看您拥有的控制器/操作代码.

这取决于您返回数据的容器,根据我的经验,您需要使用IQueryable容器并针对此容器运行ToDataSourceResult函数,以获得最佳性能.

public ActionResult Action([DataSourceRequest] DataSourceRequest request,string ExtraParameters)
{
    DBContext db = new DBContext();
    IQueryable<Model> models = db.Models;
    return Json((models).ToDataSourceResult(request));
}

编辑:也关闭ServerOperation(true)选项

猜你在找的jQuery相关文章