在我的應用程序中,我使用的是由Request + Trackable dstore支持的OnDemandGrid
,以向用戶顯示我的數據。Dojo dgrid + WebSocket通知導致應用程序無響應
服務器通過websocket向客戶端發送通知以向網格添加新條目。要將新條目添加到網格中,該店的冒落「添加」事件,如下面的代碼段的東西:
function _emitAddEvent(store, entity) {
store.emit('add', {
target: entity,
id: entity.id
});
}
直到這裏,這一切都很好。應用程序從服務器接收新條目以添加到網格中,並添加它(不刷新網格)。問題是服務器在很短的時間間隔內發送的通知過多。商店將所有事件發送到dgrid,但網格需要一些時間才能呈現所有行。由於要添加的條目太多,應用程序無響應。如果服務器停止向客戶端發送數據,應用程序在一段時間後恢復並正確渲染所有行。現在是第二個(但小問題)。
第二個問題是,網格呈現所有新行後,它不會銷燬太遠的行。我已經設置了farOffRemoval
屬性,但它似乎只處理髮生捲動並向服務器請求新數據的情況。我想知道是否有一種解決方法,即不依靠滾動來銷燬與用戶當前在網格上的位置距離太遠的節點。