2013-05-06 40 views
2

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

我想测量呈现1000个元素的列表所需的时间。 为此,当列表绘像,所以当列表被初始化,stoppend启动一个定时器:

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); 
} 
} 

的画事件是triggerd DOM操作之前,所以当rentertime弹出的1000个listItems中是不可见的。 在DOM被操作并且列表被更新之后是否还有其他触发事件?
或者是否有另一种方法来衡量完成此操作所需的时间?

映入眼帘, 桑德凡Loock

+0

Ext.dataview.component.ListItemView - >绘制事件? – Dinkheller 2013-08-01 12:37:03

+0

如果您使用的是列表,那么您可能只能使用<可见Listitems的数量> + 1(无限:true)。通常只有本地存储而不是无限列表的商店变得很慢。 – Dinkheller 2013-08-01 12:54:17

回答

0

不幸的是,你不回答,所以我只能猜测:

  • 您2单独添加每个项目到店里来。在Sencha Touch中这会消耗时间。最好创建一组项目并一次添加它们。
  • 如果要添加项目并且商店的更新时间过长,请停止对商店进行排序。
  • 如果您对列表感兴趣,您最好在事件发生前后使用。像之前updatedata和更新后的数据。或者你可以将开始添加到第一个itemTpl。

但是,无限列表的绘画不会占用任何实时时间。所以DOM部分真的不是你想要的。

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