禁用更新Dojo Grid
Disable updating a Dojo Grid
我在Dojo中有四个网格,它们每隔几秒更新一次实时数据。
我一次只向用户显示一个网格,但是在后台所有四个网格都会更新。这使得页面在移动设备上的速度变慢了很多(在PC上不明显)。
是否有一种方法来禁用更新网格,如果它不在视图中?
var myGrid = new (declare([Grid, DijitRegistry]))({
store: myStore, // this is a Observable(Memory())
columns:[
{field: "field1", label: "A", sortable: false},
{field: "field2", label: "B", sortable: false},
{field: "field3", label: "C", sortable: false},
{field: "field4", label: "D", sortable: false},
{field: "field5", label: "E", sortable: false}
],
selectionMode: "single",
cellNavigation: true,
queryOptions: {
sort:[{attribute: "field1", descending: true}]
}
},
myDomRef
);
有没有类似
的东西myGrid.disable();
和
myGrid.enable();
使DOM更新仅在启用Grid时发生?
如果您使用的是dgrid 0.3.17或dgrid 0.4.0,则有启用/禁用观察的选项,但它们仅在设置存储或集合时生效。
在dgrid 0.3.17中,属性是shouldObserveStore
:
grid.set('shouldObserveStore', false);
grid.set('store', ...);
在dgrid 0.4.0中,属性是shouldTrackCollection
:
grid.set('shouldTrackCollection', false);
grid.set('collection', ...);
下面是他们的Observables文档页面上的一个例子。我还没有测试过,但想法应该是一样的,你只需要找出细节。
require(["dojo/store/Observable", "dojo/store/Memory"], function (Observable, Memory) {
var myGrid = new(declare([Grid, DijitRegistry]))({
store: myStore, // this is a Observable(Memory())
columns: [
{
field: "field1",
label: "A",
sortable: false
},
{
field: "field2",
label: "B",
sortable: false
},
{
field: "field3",
label: "C",
sortable: false
},
{
field: "field4",
label: "D",
sortable: false
},
{
field: "field5",
label: "E",
sortable: false
}
],
selectionMode: "single",
cellNavigation: true,
queryOptions: {
sort: [{
attribute: "field1",
descending: true
}]
}
},
myDomRef
);
// create the initial Observable store
store = new Observable(new Memory({
data: someData
}));
// query the store
var results = store.query({
rating: 5
});
// now listen for any changes
var observeHandle = results.observe(function (object, removedFrom, insertedInto) {
// do something
});
// done observing, any further modifications will not trigger our listener
observeHandle.cancel();
});
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 通过在Dojo mobile ViewController.openExternalView中动态更改打开同一外部视图的
- Dojo:访问dijit.form.Select中单击的项目
- onChange不足以从Dojo组合框触发查询
- Dojo XHR将200 OK视为错误
- Dojo IE DataGrid内联编辑
- Angular UI-GRID未在页面上显示网格
- 使用COMETD将服务器推送到客户端(dojo)
- 如何在dojo应用程序构建概要文件中加载json文件
- 如何仅在ui-grid.js中显示特定列
- 调用REST Service save()方法时,XPages Dojo Grid可编辑单元格不保存值
- Dojo Enhaced Grid - JsonRestStore,使用 JsonRestStore 时网格不显示数据
- Binding onRowClick to a DoJo datagrid (dojox.grid.DataGrid)
- Dojo: dojox.grid.LazyTreeGrid + QueryReadStore - 分页子级时出错
- 如何将小部件添加到Dojo gridx/Grid头中
- DOJO: dojox.grid.TreeGrid + checkbox How to
- Dojo grid Bool column
- dojo .grid.datagrid排序顺序
- 使用Dojo.JsonRest调用grid.model.save()的gridx-lazyedit解析500 put响应
- 禁用更新Dojo Grid