Я в настоящее время использую jqgrid на сайте asp.net mvc, и у нас довольно медленная сеть (внутреннее приложение), и кажется, что загрузка сетки занимает много времени (проблема как в сети, так и в разборе, рендеринг)
Я пытаюсь определить, как минимизировать то, что я посылаю клиенту, чтобы сделать это как можно быстрее.
Вот упрощенное представление действия моего контроллера для загрузки данных в сетку:
[AcceptVerbs(HttpVerbs.Get)]
public ActionResult GridData1(GridData args)
{
var paginatedData = applications.GridPaginate(args.page ?? 1, args.rows ?? 10,
i => new
{
i.Id,
Name = "<div class='showDescription' id= '" + i.id+ "'>" + i.Name + "</div>",
MyValue = GetImageUrl(_map, i.value, "star"),
ExternalId = string.Format("<a href=\"{0}\" target=\"_blank\">{1}</a>",
Url.Action("Link", "Order", new { id = i.id }), i.Id),
i.Target,
i.Owner,
EndDate = i.EndDate,
Updated = "<div class='showView' aitId= '" + i.AitId + "'>" + GetImage(i.EndDateColumn, "star") + "</div>",
})
return Json(paginatedData);
}
Итак, я создаю данные json (у меня есть около 200 записей выше) и отправляю их обратно в графический интерфейс для добавления в jqgrid.
Единственное, что я могу сделать, это Повторные данные. В некоторых полях json я добавляю HTML поверх необработанных «данных». Это один и тот же HTML в каждой записи. Кажется, было бы более эффективно, если бы я мог просто отправить данные и «добавить» HTML-код вокруг него на стороне клиента. Это возможно? Тогда я бы просто отправлял фактические данные по проводам, и чтобы клиентская сторона добавляла остальные HTML-теги (div и т. Д.), Которые собирались вместе.
Кроме того, если есть какие-либо другие предложения о том, как я могу минимизировать размер своих сообщений, это было бы здорово. Я думаю, что в какой-то момент эти решения увеличат нагрузку на стороне клиента, но, возможно, стоит сократить сетевой трафик.