【问题标题】:Dojo dGrid/dStore realtime updateDojo dGrid/dStore 实时更新
【发布时间】: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);

【问题讨论】:

    标签: javascript json dojo dgrid dstore


    【解决方案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);
    });
    

    【讨论】:

      猜你喜欢
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多