У меня есть GridPanel (var agentGrid в коде), который связан с JsonStore (var agentDataStore в коде).В этом магазине есть поле, в котором отображается таймер, указывающий время, когда агент обслуживания клиентов находится в состоянии.Итак, каждые 15 секунд я запускаю событие (используя setInterval ()), которое обновляет таймер в каждой строке путем итерации JsonStore и обновления соответствующего поля.
Итак, вот событие, которое запускается каждые 15секунд:
Код:
function agentTimerTick() {
var newTime = getStateTime(); //assume this always works
agentDataStore.each(function (rec) {
rec.set('statetimedisplay', newTime); //set the field of the JsonStore to the timer value
});
agentDataStore.commitChanges();
}
Однако, как только я получаю около 120 агентов в JsonStore, страница начинает зависать, и Firefox сообщает мне, что мой сценарий занимает слишком много времени для записи.
Итак, мои вопросы: есть ли лучший способ реализовать таймер в каждой строке GridPanel (связанной с JsonStore)?Я понимаю, что итерации не эффективный процесс, но как еще я могу обновить каждую строку?Имейте в виду, мне нужно показать время в состоянии для каждого агента.Я бы предположил, что 200 строк не должны быть так много, чтобы обновить, но, возможно, это так?