如何使用Rally的SDK 2立即制作网格显示等组件?

时间:2013-01-26 02:55:53

标签: javascript extjs rally

我创建了一个拉力赛网格并将其放入其中一个列为应用项目的容器中。然后,应用程序循环执行for循环,最多可能需要三分钟才能创建并向页面添加其他网格。

  1. 应用程序等待,直到创建所有网格并将其添加到页面中,然后再显示其中的任何网格。一旦添加到组件中,如何才能显示第一个显示的内容?

  2. 是否有一个经验法则可以最快速地添加一大堆东西?我正在为一些次要摘要数据添加100多个网格。每个人都有一个小数组,但我做了一个商店,然后是一个网格。

  3. 当它在100多个小网格中循环时,我无法阻止它完成执行。由于整个事情是由属性框中的更改引发的,因此用户更改下拉列表在一段时间内不会执行任何操作。我甚至无法关闭Chrome标签页。

1 个答案:

答案 0 :(得分:1)

在渲染过程中暂停Ext布局可能有助于加快速度:

Ext.suspendLayouts();
for (var i = 0; i < 100; i++) {
    addGrids...
}
Ext.resumeLayouts(true);

如果暂停布局仍然太慢,请尝试异步添加网格。这实际上不会加快渲染速度,但它可能有助于UI感觉更具响应性。将suspendLayouts技巧与异步渲染相结合将不起作用,您必须选择其中一个:

for (var i = 0; i < 100; i++) {
    var addGrid = function() {
        addGrid...
    }

    Ext.Function.defer(addGrid, i * 200);
}

100个网格是很多dom。无论您使用何种方法,它都可能会很慢。如果您的目标是IE,请小心,我怀疑IE中单个页面上的100个网格将无法使用。