Я использую jqgrid на клиентской стороне для финансового веб-приложения, где строки добавляются и / или обновляются очень часто (каждые несколько мс).
Максимальное количество рядов всегда остается ниже 80.
данные передаются в сеть через комету (обратный ajax)
когда данные поступают, применяется следующий код
обновление
jqgrid определяется следующим образом:
jQuery(selector).jqGrid(
{
datatype: 'local',
localReader: {
id: "id"
},
colNames: ["id","price","volume","time"],
colModel: [ {name:'id', width:60},
{name:'price', width:80,
align:"right",sorttype:"float"},
{name:'volume', width:100},
{name:'time',index:'amount', width:80}
],
sortname: '',
sortorder: 'desc',
height:'100%',
rowNum: 80,
viewrecords: true,
loadonce: true
});
........................
_updateGrid: function (handle, args) {
var updated = args.data;
var current = handle.jqGrid('getRowData', updated.id);
if (typeof current.id == 'undefined' || current.id == null
|| current.id == "") {
current = updated;
var itWorks = handle.addRowData(updated.id, current);
}
else {
handle.jqGrid('setRowData', updated.id,
{
id: updated.id
, price: updated.price
, volume: updated.volume
, time: updated.time
});
}
handle.sortGrid('price', false, 'desc');
}
сейчас производительность очень плохая, настолько плохая, что firefox выскакивает сообщение об ошибке с просьбой остановить скрипт.
Я думаю о переключении виджета сетки, но прежде я хотел бы посмотреть, есть ли у других разработчиков какие-либо идеи, которые могли бы решить эту проблему.