2012-05-30 17 views
5

अवरुद्ध से बचने के लिए प्रतिपादन CollectionView ऊपर तोड़कर मैं ({{each}} द्वारा बनाई गई के रूप में) एक CollectionView को अद्यतन के लिए प्रतिपादन अनुसूची में परिवर्तन करने के लिए इतना है कि एक बड़ी प्रविष्टि एक लंबे समय के लिए यूआई धागा ब्लॉक नहीं करता चाहते हैं। आदर्श रूप में, मैं 50 एमएस में जितना तत्व कर सकता हूं उतना तत्व प्रस्तुत करना चाहता हूं, फिर यूआई थ्रेड पर वापस नियंत्रण पास करें और आगे की प्रतिपादन जारी रखने के लिए टाइमआउट सेट करें। ऐसा लगता है कि कस्टम रेंडर बफर व्यवहार को लागू करने के लिए एम्बर में कुछ सुविधा है, लेकिन मुझे यकीन नहीं है कि इसके साथ कहां से शुरुआत करें।यूआई धागा

यहाँ एक jsfiddle थोड़ी देर के लिए यूआई धागा अवरुद्ध एक सूची में 500 तत्वों की प्रविष्टि दिखा बेंचमार्क है:

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

+0

क्या यह EMBER 1.0.0-RC.1 में तय किया गया है? –

उत्तर

2

मैं यह करने के लिए एक बेहतर तरीका खोजने के लिए चाहते हैं, लेकिन अभी मैं कर रहा हूँ देरी से मैं ArrayController की सामग्री को कितनी जल्दी पॉप्युलेट करता हूं। यहां एक बहुत गंदा उदाहरण है।

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

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

आप केवल आइटम है कि व्यूपोर्ट में होगा की सामग्री की एक सूची बनाए रखने के द्वारा इस सुधार सकता है। मुझे कलेक्शन व्यू के आइटम व्यू क्लास के रेंडर फ़ंक्शन में हुक करने का आपका विचार पसंद है और केवल कुछ निश्चित दृश्यों को प्रस्तुत करने की अनुमति दें।

संबंधित मुद्दे