2

Sencha Touch 中的 DOM 操作成功后,他们的事件是否可用?

我想测量渲染包含 1000 个元素的列表所需的时间。因此,在初始化列表时启动计时器,并在绘制列表时停止挂起,如下所示:

listeners: {
 initialize: function () {
   start = new Date();
   var store = Ext.getStore('Songs');
   for (var i = 1; i <= 1000; i++) {
      store.add({id: i});
    }
 },
 painted: function () {
   stop = new Date();
   Ext.Msg("Timer", stop - start);
 }
}

绘制事件在 DOM 操作之前触发,因此当租用时间弹出时,这 1000 个列表项不可见。在操作 DOM 并更新列表后是否触发了其他事件?
或者是否有替代方法来测量执行此操作所需的时间?

问候,桑德范洛克

4

1 回答 1

0

不幸的是,您没有回答,因此我只能猜测:

  • 您将每个项目分别添加到商店。在 Sencha Touch 中,这会消耗时间。最好创建一个项目数组并立即添加它们。
  • 如果您正在添加商品并且商店的更新时间过长,请停止对商店进行排序。
  • 如果您对列表感兴趣,您最好在事件之前和之后使用。类似于 updatedata 之前和 updatedata 之后的东西。或者您可以将开始添加到第一个 itemTpl。

但又一次。绘制一个无限的列表不需要任何实际时间。所以 DOM 部分真的不是你要找的。

如果您使用的是数据视图,这可能会有所不同。

于 2013-08-02T21:09:26.363 回答