jqgrid с большими локальными наборами данных - PullRequest
1 голос
/ 21 декабря 2009

Я ищу рекомендации для jqgrid по добавлению большого набора данных из локального источника. Прямо сейчас есть простой цикл:

grid.clearGridData();
for(var i = 0; i < data.length; i++)
{
    grid.addRowData(i+1, data[i]);
}
grid.trigger(”reloadGrid”);

И на некоторых больших наборах данных это заставляет браузер отображать сообщение «javascript использует слишком много ресурсов… выход / продолжить» в IE и FF, обычно после нескольких «Продолжений» все в порядке. Это для наборов данных ~ 2000 строк.

Я могу разбить это на несколько частей с помощью setTimeout, но это кажется грязным.

Использование версии 3.3 jqgrid.

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Уже поздно (2012), но это все еще может быть полезно. Использование:

$("#gridID").setGridParam({ data: JSONData });
$("#gridID").trigger("reloadGrid");

Более эффективен, чем цикл addRowData.

1 голос
/ 21 декабря 2009

Моя первая мысль: 2000 строк - это обычно , что слишком много для одной страницы; пользователи просто не смогут обрабатывать столько информации. Если им по какой-то причине нужно нужно все сразу, возможно, стоит экспортировать их в CSV, поскольку это обычно упрощает выполнение тех действий, которые нужно выполнять на 2000 строках данных, например , произвольная статистика.

Моя следующая мысль: если вам все еще нужно это сделать, вы можете попробовать обновить до последней версии jqGrid (в настоящее время 3.6.1) в надежде, что они немного оптимизировали этот путь.

Еще одна идея: если вы используете JSON, вы пытались настроить jqGrid, чтобы позволить нативному синтаксическому анализу браузера обрабатывать JSON? Это задокументировано здесь немного вниз по странице.

В общем, setTimeout кладжи - это способ исправить подобные вещи, если вам действительно это нужно, но большую часть времени вам лучше сделать шаг назад и искать другой решение любой проблемы, которую вы решаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...