我有一个绑定到JsonStore(代理中的var agentDataStore)的GridPanel(var agentGrid代码)。该商店有一个显示计时器的字段,指示客户服务代理处于某个状态的时间。因此,我每15秒钟发一个事件(使用setInterval()),通过迭代JsonStore并更新相应的字段来更新每行上的计时器。迭代ExtJS 3.1使用大型数据源的GridPanel
所以,这里是获取每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();
}
但是,一旦我得到的JsonStore约120剂,页面开始冻结和Firefox告诉我我的脚本写太长了。
所以,我的问题: 是否有更好的方式来实现GridPanel的每一行中的计时器(绑定到一个JsonStore)?我意识到迭代不是一个高效的过程,但我怎么才能更新每一行?请记住,我需要在每个代理人的状态中显示时间。 我想200行不应该蜂更新,但也许它是?