2013-03-11 9 views
8

पिछले 6 महीनों में मैं एम्बरज घटकों का विकास कर रहा हूं।एम्बरज में सबसे बड़ा प्रदर्शन मुद्दा क्या है?

जब मैंने टेबल घटक विकसित करने का प्रयास किया तो मैंने पहली बार प्रदर्शन की समस्याएं शुरू कीं। इस तालिका में प्रत्येक सेल एम्बर था। देखें और प्रत्येक सेल संपत्ति को ऑब्जेक्ट करने के लिए बाध्यकारी था। जब तालिका में 6 कॉलम थे और मैंने लगभग 100 आइटम सूचीबद्ध करने की कोशिश की, तो यह कारण हुआ कि ब्राउजर थोड़ी देर के लिए जमे हुए थे। इसलिए मैंने पाया कि यह एक ऐसा फ़ंक्शन लिखना बेहतर है जो हैंडलबार का उपयोग करने के बजाय स्ट्रिंग को वापस करता है और पर्यवेक्षकों द्वारा मैन्युअल रूप से बाध्यकारी संभालता है।

तो, क्या कोई अच्छा अभ्यास है कि न्यूनतम बाइंडिंग का उपयोग कैसे करें? या बाइंडिंग कैसे लिखें और बहुत सारे प्रदर्शन न खोएं। उदाहरण के लिए ... बड़ी मात्रा में डेटा के लिए बाइंडिंग का उपयोग न करें?

कितने एम्बर। दृश्य वस्तुएं पृष्ठ पर संलग्न हो सकती हैं?

धन्यवाद प्रतिक्रिया

+0

यहां एक एम्बर दृश्य है जो डीओएम तत्वों का पुन: उपयोग करके डेटा की बड़ी मात्रा प्रदर्शित करने के लिए अनुकूलित किया गया है: https://github.com/emberjs/list-view – CraigTeegarden

उत्तर

8

के लिए हम एक एंबर अनुप्रयोग है कि एक ही पृष्ठ पर जटिल वस्तुओं के 100s को प्रदर्शित करता है मिल गया है। प्रत्येक आइटम एक दर्जन गुणों को आउटपुट करने के लिए आउट-ऑफ-बॉक्स हैंडलबार्स बाइंडिंग का उपयोग करता है। यह बहुत तेज़ी से प्रस्तुत करता है (< 100ms) और उस समय के बहुत कम समय बाइंडिंग पर खर्च किया जाता है।

यदि आपको लगता है कि ब्राउज़र 6 कॉलम और 100 आइटम पर लटक रहा है तो निश्चित रूप से कुछ और गलत है।

तो, क्या कोई अच्छा अभ्यास है कि न्यूनतम बाइंडिंग का उपयोग कैसे करें? या बाइंडिंग कैसे लिखें और बहुत सारे प्रदर्शन न खोएं।

क्या चल रहा है यह देखने के लिए Ember.LOG_BINDINGS = true सेट करने का प्रयास करें। सर्कुलर निर्भरता या हल करने के लिए महंगा होने के लिए आप बाध्यकारी गुण हो सकते हैं।

http://www.akshay.cc/blog/2013-02-22-debugging-ember-js-and-ember-data.html

कितने Ember.View वस्तुओं पृष्ठ से संलग्न है: डिबगिंग के बारे में महान सुझावों के लिए यह पोस्ट देखें?

मुझे विश्वास नहीं है कि एक ठोस सीमा है, निश्चित रूप से यह ब्राउज़र पर निर्भर करेगा। मैं अनुकूलन पर विचार नहीं करता जब तक कि कुछ हज़ार से अधिक नहीं थे। कैसे एंबर बहुत बड़ी तालिकाओं को संभालने के लिए अनुकूलित किया जा सकता है देखने के लिए यह उदाहरण

की जांच:

http://addepar.github.com/ember-table/

+0

आपकी प्रतिक्रिया माइक के लिए बहुत बहुत धन्यवाद। एम्बर-टेबल ने मुझे दिखाया, कि एक ही टेबल में भारी मात्रा में ओडी रिकॉर्ड प्रदर्शित करना वास्तव में संभव है। और आपकी सलाह ने मुझे अपने आवेदन को डीबग करने में मदद की और पाया कि वास्तविक समस्या क्या है। –

+4

यदि आप 'असली' समस्या क्या साझा करते हैं तो यह अच्छा होगा! –

4

एरिक Bryn हाल ही में एक बात के बारे में Ember.ListView जो काफी एक पेज में कटौती होगी दृश्यों की संख्या को दे दी है व्यूपोर्ट से बाहर निकलने वाली सूची कक्षों का पुन: उपयोग करके।

यदि आपके मॉडल कई गुण एक ही समय में मेटामोर्फ स्क्रिप्ट टैग की संख्या को कम करने के लिए group-helper के साथ इस तकनीक को जोड़ते हैं। इसके अतिरिक्त, {{unbound}} का उपयोग करने पर विचार करें यदि आपको अद्यतन करने के लिए किसी भी गुण की आवश्यकता नहीं है।

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