У меня есть сайт asp.net mvc, где я загружаю jqgrid с данными json
Вот код действия моего контроллера:
public ActionResult GridData(GridData args)
{
IEnumerable<Application> applications = EntityModel.GetAll().ToList();
applications = FilterEntities(applications);
if (args.sidx.IsNullOrEmpty() || args.sidx == "Id")
{
args.sidx = "Name";
args.sord = "asc";
}
applications = applications.GridSort(args.sidx, args.sord);
var paginatedData = applications.GridPaginate(args.page ?? 1, args.rows ?? 10,
i => new
{
i.Id,
Name = "<div class='showDescription' Id= '" + i.MyId + "'>" + i.Name + "</div>",
MyId = string.Format("<a i.LastUpdated,
i.LastUpdatedColumn
});
return Json(paginatedData);
}
и вот мой код JavaScript:
function doInitCrudGrid(controller, names, model, editable, querystring) {
jQuery("#grid").jqGrid({
mtype: 'POST',
url: "/" + controller + "/GridData?" + querystring,
datatype: "json",
colNames: names,
colModel: model,
imgpath: "/Scripts/jqGrid/themes/steel/images",
rowNum: 20,
rowList: [10, 20, 50, 999],
altRows: true,
altclass: "altRow",
jsonReader: {
root: "Rows",
page: "Page",
total: "Total",
records: "Records",
repeatitems: false,
id: "Id"
},
pager: "#pager",
height: "auto",
sortname: "Id",
viewrecords: true,
sortorder: "desc",
loadComplete: function() {
alert("Load Complete");
},
ondblClickRow: function(rowid) { }
});
У меня есть точка останова на
return Json(paginatedData);
линия, и она очень быстро удаляется, но после этого требуется около 10 секунд для:
alert("Load Complete");
и для отображения на веб-странице.
Есть ли какой-либо способ отладки этого или способа увидеть, почему будет такая большая задержка между завершением json на стороне сервера и созданием истории loadcomplete при обратном вызове JavaScript?