我需要显示数据列表,至少有100万行(大数据、机器学习)。我不需要马上显示,qooxdoo表的远程表模型工作得很好,但是我选择列表作为设计选择。
下面是我做的一个测试。
//create the model data, 1mil items
var rawData = [];
for (var i = 0; i < 1000000; i++) {
rawData[i] = "Item No " + i;
}
var model = new qx.data.Array(rawData);
//create the list
var list = new qx.ui.list.List(model);
this.getRoot().add(list);我理解需要很长时间才能生成rawdata并将其分配给list。但问题是,在分配列表之后,虚拟列表本身几乎没有响应能力.
滚动非常缓慢,向下箭头导航也会冻结几秒钟。如果我正确理解的话,only虚拟基础设施应该只呈现可见项吗?但是在上面的测试用例中,它太慢了。我希望像远程表模型一样工作。
用qooxdoo最新的4.0.0和3.5.1测试,Chrome 35稳定。
发布于 2014-06-20 09:31:03
我只能通过源代码版本而不是构建版本来重现您的问题。我发现了演出如此缓慢的原因。有一个运行时签入来自SingleValueBinding的内部方法,它对呈现有巨大的性能影响。
我打开了一个bug报告:bug.cgi?id=8439
但是,正如我所遗憾的,这个问题只发生在您的开发人员版本中。所以你的客户不受影响。
如果你想的话,你可以禁用支票。只需删除检查块:https://github.com/qooxdoo/qooxdoo/blob/master/framework/source/class/qx/data/SingleValueBinding.js#L915
还可以部分加载模型数据,以改进模型创建。当用户滚动到列表的末尾时,您可以加载下一部分。您可以使用您已经看到的示例:Infinite scroll in qooxdoo with virtual list
https://stackoverflow.com/questions/24294316
复制相似问题