2012-05-30 32 views
5

UI iş parçacığının engellenmesini engellemek için görüntü oluşturma işlemini CollectionView ({{each}} tarafından oluşturulduğu şekilde) için değiştirme zamanlamasını değiştirmek istiyorum, böylece büyük bir ekleme UI iş parçacığını uzun süre engellemez. İdeal olarak, 50 ms'de yapabildiğim kadar çok eleman oluşturmak istiyorum, daha sonra kontrolü tekrar UI iş parçacığına aktarıyorum ve daha fazla işleme devam etmek için bir zaman aşımı belirledim. Özel render buffer davranışı uygulamak için Ember'de bazı özellikler var gibi görünüyor, ama nereden başlayacağından emin değilim. İşte Kullanıcı Arabirimi

bir süre UI iş parçacığı engelleyen bir liste halinde 500 elemanlarının yerleştirilmesini gösteren bir jsfiddle kriter var:

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

+0

Bu, EMBER 1.0.0-RC.1'de mı düzeltildi? –

cevap

2

Bunu yapmak için daha iyi bir yol bulmak istiyoruz ama şu anda ben ArrayController'ın içeriğini ne kadar hızlı doldurduğumu geciktiriyorum. İşte gerçekten kirli bir örnek.

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

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

Yalnızca görüntü kapısında olacağını öğelerin içeriğin listesini koruyarak bu artırabilir. Bir CollectionView öğesininViewClass öğesinin render işlevine girme fikrini beğendim ve yalnızca belirli sayıda görünümün oluşturulmasına izin ver.

İlgili konular