2013-06-12 9 views
9

मेरा आधार गलत था। जबकि AngularJS निश्चित रूप से चीजों को धीमा कर रहा था, यह नीचे वर्णित समस्या के कारण नहीं था। हालांकि, यह मेरे सवाल का झुकाव का जवाब था - एक कोणीय दायरे से तत्व को कैसे बाहर निकालना है - जो इसे साबित करने में सक्षम था।मैं कोणीय दायरे से तत्व को कैसे बाहर निकाल सकता हूं?

मैं ऐसी साइट का निर्माण कर रहा हूं जो AJAX- प्राप्त डेटा से d3 + राफेल का उपयोग करके ग्राफ उत्पन्न करता है। इसके परिणामस्वरूप डीओएम में बहुत से एसवीजी या वीएमएल तत्व होते हैं, इस पर निर्भर करता है कि उपयोगकर्ता किस प्रकार का चार्ट प्रस्तुत करना चुनता है (पाई में कुछ, रेखा और स्टैक्ड बार में कई उदाहरण हैं)।

मैं एक समस्या में भाग रहा हूं जहां AngularJS द्वारा नियंत्रित टेक्स्ट फ़ील्ड में टेक्स्ट दर्ज करना फ़ायरफ़ॉक्स को क्रॉल में लाता है। मैं कुछ अक्षर टाइप करता हूं, फिर अचानक प्रकट होने के लिए 2-3 सेकंड प्रतीक्षा करें, फिर कुछ और टाइप करें। (क्रोम इसे थोड़ा बेहतर तरीके से संभालने लगता है।)

जब पृष्ठ पर कोई ग्राफ नहीं है (उपयोगकर्ता ने उत्पन्न होने के लिए पर्याप्त डेटा प्रदान नहीं किया है), इन पाठ फ़ील्ड की सामग्री को संपादित करना ठीक है। I मान लें कोणीय जेएस को समस्या हो रही है जब यह डोम को अपडेट करने का प्रयास करता है और सैकड़ों एसवीजी या वीएमएल तत्वों को देखना पड़ता है।

ग्राफ, हालांकि, इसमें कुछ भी नहीं है जो AngularJS को स्वयं चिंता करने की आवश्यकता है। (वहाँ रहे हैं, तथापि, UI तत्व से पहले और ग्राफ के बाद यह करने के लिए ध्यान देने की जरूरत नहीं है कि।)

मैं दो समाधान के बारे में सोच सकते हैं:

  1. AngularJS नियंत्रक बाहर ग्राफ के DIV डाल , और इसे स्थिति में रखने के लिए सीएसएस का उपयोग करें जहां यह वास्तव में

  2. एंगुलरजेएस को बताएं - किसी भी तरह - ग्राफ के डीआईवी को कभी भी नहीं खोलें; इस पर छोड़ जब, इन-सिंक

देख सकते हैं और मॉडल दूसरा विकल्प मेरे लिए बेहतर लगता है रखने के बाद से यह दस्तावेज़ लेआउट समझदार/अर्थ रखता है। क्या इसे करने का कोई तरीका है? (या कुछ, यहां तक ​​कि बेहतर समाधान मैंने सोचा नहीं है?)

+2

क्या आपने एनजी-गैर-बिंदेल की कोशिश की है? http://docs.angularjs.org/api/ng.directive:ngNonBindable –

+1

आपको क्यों लगता है कि कोणीय को सभी एसवीजी/वीएमएल तत्वों को देखना है? क्या कोणीय द्वारा उत्पन्न तत्व हैं? यदि नहीं, तो कोणीय उन्हें देख नहीं रहा है। कोणीय केवल HTML दस्तावेज़ (डीओएम) को संकलित करता है: http://docs.angularjs.org/guide/concepts#startup –

+0

ng-non-bindable वही है जो मैं ढूंढ रहा था! लेकिन यह भी साबित करता है कि मार्क ने क्या कहा है: राफेल द्वारा उत्पन्न एसवीजी/वीएमएल के कारण कोणीय वास्तव में धीमा नहीं है। इस ब्लॉक को अनदेखा करने से मदद नहीं मिलती है। चूंकि क्रोम में समस्या मौजूद नहीं है, और फ़ायरबग का प्रोफाइलर क्रोम की तुलना में कम जानकारीपूर्ण है, यह कहना मुश्किल है कि मंदी कहां है ... मैं खुदाई रखूंगा। हालांकि, मैं वास्तव में अपने शुरुआती प्रश्न का उत्तर देने के लिए फ्लिम पूर्ण क्रेडिट देना चाहता हूं। – Ben

उत्तर

16

क्या आपने एनजी-गैर-बाध्यकारी कोशिश की है? http://docs.angularjs.org/api/ng.directive:ngNonBindable

<ANY ng-non-bindable> 
    ... 
</ANY> 
+0

मुझे एक सीकेएडिटर उदाहरण के साथ परेशानी हो रही थी जिसमें तरल टेम्पलेट चर शामिल थे। एंगुलर चरम पर अंतर कर रहा था भले ही इनपुट कोणीय में कुछ भी बाध्य न हो। 'Ng-non-bindable' को जोड़कर इसे ठीक किया गया। धन्यवाद! –

+0

आपका स्वागत है! –

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

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