2016-10-01 9 views
7

का उपयोग कर कैसे जब ngFor का उपयोग कर एक टेम्पलेट कई बार प्रतिपादन मैं प्रदर्शन को बढ़ा सकते हैं? मेरे पास एक ऐसी स्थिति है जहां मुझे गिनती के आधार पर एक ही टेम्पलेट दिखाना होगा। मैं इसे * ngFor का उपयोग कर कर रहा हूं। टेम्पलेट भार सही ढंग से, लेकिन मैं performance.Because मैं बार-बार कुछ हज़ार बार एक ही सामग्री दिखाने की जरूरत के बारे में चिंतित हूँ, फिर प्रदर्शन धीमा हो जाएगा के बाद टेम्पलेट loaded.I यहाँ http://plnkr.co/edit/qTj4SVRnFD6N15PZ1GWC?p=preview एक plunker डेमो बनाया है। कृपया 1000 के अंतर के साथ फॉर्मरायरे में फॉर्म ग्रुप की गिनती बढ़ाएं, तो सिस्टम धीमा हो जाएगा या टूट जाएगा। यह मैं कैसे formarray बनाने के लिए,टेम्पलेट का धीरे प्रतिपादन angular2 * ngFor

 for(var i=0;i<100;i++){ 
    let dummyFormGroup=this.fb.group({ 
    'name':[''], 
    'place':[''] 
    }) 
    this.dummyFormArray.push(dummyFormGroup); 
} 

और मैं इस

<div *ngFor="let formgroup of dummyFormArray.controls" style="display:flex;flex-direction:row"> 
<p> 
    <label>Name:</label> 
    <input type="text" [formControl]="formgroup.controls['name']" /> 
</p> 
<p> 
<label>Place:</label> 
<input type="text" [formControl]="formgroup.controls['place']" /> 
</p> 

तरह ngFor का उपयोग कर किसी कृपया मुझे एक दृष्टिकोण का सुझाव मैं कहाँ बढ़ा सकते हैं कर सकते हैं formarray में नियंत्रण प्रस्तुत करना है एक बार टेम्पलेट लोड हो जाने पर प्रदर्शन? क्योंकि टेम्पलेट को लोड करने की प्रतीक्षा करने के साथ मैं ठीक हूं क्योंकि इसे हजारों रिकॉर्ड प्रस्तुत करने की आवश्यकता है। लेकिन एक बार टेम्पलेट तैयार होने के बाद मैं चाहता हूं कि इस मामले में * ngFor का उपयोग करके सिस्टम तेज हो। कृपया इस मुद्दे को हल करने में मेरी मदद करें। धन्यवाद!

+0

क्या आप स्पष्ट कर सकते हैं कि धीमे से आपका क्या मतलब है? क्या यह पोस्ट या प्री रेंडर है? – Ced

+0

पोस्ट रेंडरर –

+0

के बाद इसकी धीमी गति और जब टेम्पलेट तैयार हो जाता है, तो इनपुट बॉक्स में संपादन धीरे-धीरे प्रदर्शित होता है। यह मेरे कोड तर्क के साथ सही है? मेरा मतलब है * टेम्पलेट लोड होने के बाद पृष्ठभूमि में किसी भी घटना को चलाने के लिए? –

उत्तर

4

पेड़ में हर घटक में परिवर्तन का पता लगाने के लिए डिफ़ॉल्ट कोणीय चेकों के द्वारा।

इसलिए उदाहरण के लिए यदि आप कुंजी को ऊपर बाँध, आपके इनपुट घटकों के लिए, चीजों को बहुत तेजी से गंदा होने जा रहे हैं। https://stackoverflow.com/a/39802466/4299560

0

तुम भी ही दिखाई टेम्पलेट्स प्रतिपादन द्वारा प्रदर्शन में सुधार कर सकते हैं: परिवर्तन का पता लगाने के लिए यहाँ पर

अधिक। आइए मान लें कि आप 10 टेम्पलेट्स को प्रस्तुत करना शुरू करते हैं, और जब आप स्क्रॉलिंग (पृष्ठ के निचले भाग में) शुरू करते हैं, तो आप अधिक प्रस्तुत करते हैं। वेब ब्राउज़र को सभी डोम-तत्वों को प्रस्तुत करने में कुछ समय लगता है। "ऑल-ऑन-टाइम" प्रस्तुत करने से "बस-समय-समय" प्रस्तुत करना बेहतर है। सभी डेटा अभी भी स्मृति में होंगे, यह सुनिश्चित कर लें कि सॉर्टिंग, या विशिष्ट टेम्पलेट्स की खोज करना संभव हो सकता है।