我有一個綁定到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行不應該蜂更新,但也許它是?