2012-05-30 12 views
5

Me gustaría modificar el cronograma de renderizado de actualizaciones a CollectionView (creado por {{each}}) para que una inserción grande no bloquee el hilo de la IU durante mucho tiempo. Idealmente, me gustaría representar la mayor cantidad de elementos posible en, por ejemplo, 50 ms, luego pasar el control nuevamente a la secuencia de la interfaz de usuario y establecer un tiempo de espera para continuar representando. Parece que hay alguna facilidad en Ember para implementar el comportamiento del búfer de renderizado personalizado, pero no estoy seguro de dónde empezar.Rompiendo CollectionView para evitar bloquear el hilo de la interfaz de usuario

Aquí es un punto de referencia jsFiddle que muestra la inserción de 500 elementos en una lista de bloqueo de la rosca de interfaz de usuario por un tiempo:

http://jsfiddle.net/Ecq8g/6/

+0

¿Se ha arreglado esto en EMBER 1.0.0-RC.1? –

Respuesta

2

me gustaría encontrar una mejor manera de hacer esto, pero en este momento estoy retrasando la rapidez con que llene los contenidos de ArrayController. Aquí hay un ejemplo realmente sucio.

http://jsfiddle.net/BsjSH/1/

for (var i = 0; i <= 999; i++) { 
    Ember.run.later(function() { 
     App.ArrayController.pushObject(App.Thing.create()); 
    }, i * 3);  
}​ 

Se podría mejorar esto manteniendo solamente una lista de contenido de artículos que están en el área de visualización. Me gusta su idea de engancharme a la función de renderizado de un ItemViewClass de CollectionView y solo permitir el renderizado de cierto número de vistas.

Cuestiones relacionadas