2015-07-05 7 views
6

में रीरेंडर अपडेट करें मैं https://docs.angularjs.org/guide/scope का अनुसरण कर रहा हूं।डीओएम बनाम एंगुलर

5. $ घड़ी सूची नाम संपत्ति पर एक परिवर्तन का पता लगाती है और इंटरपोलेशन को सूचित करती है, जो बदले में डीओएम अपडेट करती है।

6. अंगुलर निष्पादन संदर्भ से बाहर निकलता है, जो बदले में कीडाउन घटना से बाहर निकलता है और इसके साथ जावास्क्रिप्ट निष्पादन संदर्भ से बाहर निकलता है।

7. ब्राउज़र अद्यतन पाठ के साथ को फिर से प्रस्तुत करता है।

मैं संदेह क्या बीच differnce है हो रहा है लाइन 5 पर अद्यतन करता डोम और ब्राउज़र लाइन पर दृश्य फिर से renders 7. अग्रिम धन्यवाद।

+0

http://stackoverflow.com/questions/4110081/difference-between-html-and-dom – Chrillewoodz

उत्तर

8

डीओएम ब्राउज़र में लोड एचटीएमएल दस्तावेज़ का प्रतिनिधित्व करता है। जावास्क्रिप्ट दस्तावेज़ के माध्यम से दस्तावेज़ में हेरफेर कर सकता है, लेकिन उन कुशलताएं तुरंत प्रभावी नहीं होती हैं, लेकिन केवल जावास्क्रिप्ट संदर्भ के बाद जो डोम में परिवर्तन करता है समाप्त हो जाता है।

  • जे एस:

    इस तरह से इसके बारे में सोचो अरे HTML दस्तावेज़, मैं कर रहा हूँ आप में कुछ परिवर्तन करने वाला।

  • एचटीएमएल: ठीक है, आगे बढ़ें, अपने दोस्त को संपर्क करें और उसे बताएं कि आप क्या बदलना चाहते हैं।
  • जेएस: ठीक है, मैं इस पर हूं ...
  • जेएस: ठीक है, मैंने कुछ बदलाव किए हैं, लेकिन हे, मुझे कुछ और चीजों को बदलने की जरूरत है।
  • एचटीएमएल: ठीक है, आगे बढ़ो, जब तक आप सब कुछ खत्म नहीं करेंगे तब तक मैं इंतजार करूंगा।
  • जेएस: ठीक है, सबकुछ
  • एचटीएमएल: ठीक है, मैं डोम से पूछूंगा कि आपने क्या बदल दिया है और उनको लागू करें।

निम्नलिखित परीक्षण पर विचार करें:

var a = document.body.children[0]; 

a.style.color = 'red'; 
for(var i = 0; i < 10000000000; i++) { }; 
a.style.color = 'blue'; 

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

वास्तव में, रंग लाल रंग में बदल जाता है, लेकिन नीले रंग में बदलने से पहले ही इतनी कम समय अवधि के लिए ब्राउज़र में परिवर्तन को प्रस्तुत करने का समय भी नहीं होता है। या यदि यह है, तो आप ध्यान नहीं देंगे।

दूसरे शब्दों में, ब्राउज़र द्वारा DOM मैनिपुलेशन कतारबद्ध हैं। जेएस संदर्भ समाप्त हो जाने के बाद कतार निष्पादित की जाएगी। यदि जावास्क्रिप्ट अन्य कार्यों पर 2 डीओएम परिवर्तनों के बीच समय बिताता है, तो कतार निष्पादन की शुरुआत में देरी होगी और फिर सभी पंक्तिबद्ध परिवर्तन महान उत्तराधिकार में निष्पादित किए जाएंगे।

उपर्युक्त जानकारी के प्रकाश में, यह स्पष्ट होना चाहिए कि डीओएम बदलना HTML दस्तावेज़ को बदलने जैसा नहीं है।

+0

धन्यवाद marekful ... –