javascript - Dojo dGrid/dStore 实时更新

标签 javascript json dojo dgrid dstore

我一直在尝试实时获取我的 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<中的缓存Memory存储 到要使用的网格。每次新数据添加到缓存存储时,它也会反射(reflect)在网格中。

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/

相关文章:

javascript - 文件上传不适用于 ng-click angularjs

javascript - 编辑当前表单向导以成功发布数据

SQL Server 将查询输出为 UTF8 而不是 UTF16

php - 根据其值设置复选框

python - 如何解析包含多个对象的 JSON 文件

javascript - 如何计算事件的 javascript 超时?

javascript - 如何在 dojo 小部件上使用 dojo/behavior?

import - 将 TypeScript 与 Dojo 结合使用 - 导入/导出问题

javascript - 是否可以修复第三方广告的内存泄漏?

javascript - 这个自执行的匿名函数和这个普通的函数调用有什么区别?