我一直在尝试实时获取我的 dgrid/dstore 网格。 据我了解, var 函数“Observable”已被弃用,而且它对我不起作用。
我尝试通过间隔计时器更新网格,但随后整个网格被删除并重新加载。如何“内联”更新整个网格而不删除并显示“正在加载数据”?
这是我的基本代码:
var timer = setInterval(function() {
store.invalidate(); // Invalidate the cache
store.fetch(); // Perform a new request for all items
grid.refresh();
}, 500);
最佳答案
dstore中不存在Observable,但有Trackable
可以使用 mixin 来代替。至于从存储中获取新内容时更新网格,您可以使用dstore/Cache
,然后传递混合在Trackable<中的缓存
到要使用的网格。每次新数据添加到缓存存储时,它也会反射(reflect)在网格中。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);
});
关于javascript - Dojo dGrid/dStore 实时更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29341015/