Dojo dGrid/dStore 实时更新
Posted
技术标签:
【中文标题】Dojo dGrid/dStore 实时更新【英文标题】:Dojo dGrid/dStore realtime update 【发布时间】:2015-03-30 07:54:49 【问题描述】:我一直在尝试实时获取我的 dgrid/dstore 网格。 据我了解,'Observable' 函数已被弃用,而且它对我也不起作用。
我尝试通过间隔计时器更新网格,但随后整个网格被擦除并重新加载。如何在不擦除的情况下更新整个网格“内联”并显示“加载数据”?
这是我的基本代码:
var timer = setInterval(function()
store.invalidate(); // Invalidate the cache
store.fetch(); // Perform a new request for all items
grid.refresh();
, 500);
【问题讨论】:
【参考方案1】:dstore 中不存在 Observable,但是可以使用 Trackable
mixin 代替。至于在从存储中获取新内容时更新网格,您可以使用dstore/Cache
,然后将混合在Trackable
中的缓存Memory
存储传递给网格以代替使用。每次将新数据添加到缓存存储时,它也会反映在网格中。
require([
'dgrid/OnDemandGrid',
'dstore/Rest',
'dstore/Memory',
'dstore/Trackable',
'dstore/Cache',
'dojo/domReady!'
], function (OnDemandGrid, Rest, Memory, Trackable, Cache)
var restStore = new Rest(
target: '/mockRequest/'
);
var store = Cache.create(restStore,
cachingStore: new (Memory.createSubclass(Trackable))()
);
var grid = new OnDemandGrid(
collection: store.cachingStore,
columns:
id: 'ID',
name: 'Name',
description: 'Description'
,
loadingMessage: 'Loading...'
, 'main');
grid.startup();
setInterval(function ()
store.fetch();
, 2000);
);
【讨论】:
以上是关于Dojo dGrid/dStore 实时更新的主要内容,如果未能解决你的问题,请参考以下文章