दिलचस्प पोस्ट
फ़ाइलों की बड़ी मात्रा वाली निर्देशिका से फ़ाइलें पुनर्प्राप्त करना एससीएसएस में एक और वर्ग भी शामिल है अधिकतम स्मृति जो malloc आवंटित कर सकते हैं हो रही "प्रकार या नाम स्थान का नाम नहीं मिल पाया" लेकिन सब कुछ ठीक लगता है? रिकॉर्ड की संख्या की गणना करें और डेटा समूह में प्रत्येक समूह के भीतर पंक्ति संख्या उत्पन्न करें सी ++ बूस्ट: बढ़ावा देने के लिए अपरिभाषित संदर्भ :: सिस्टम :: generic_category () जावा लैम्ब्डा फ़ंक्शंस कैसे संकलित हो जाएंगे? पायथन भारित रैंडम पायथन पार्स सीएसवी सही ढंग से स्थिर सदस्यों को सी ++ में परिभाषित करना उपयोगकर्ता द्वारा पुश नोटिफिकेशन सक्षम किए जाने पर iPhone पर निर्धारित करें सीएसएस अतिप्रवाह-एक्स: दृश्यमान; और अतिप्रवाह- y: छिपा हुआ; स्क्रॉलबार समस्या पैदा करने के कारण क्या जेफ्री चार्ट में प्लॉट में लीजेंड जोड़ना संभव है? निजी शुद्ध वर्चुअल फ़ंक्शन का क्या मतलब है? डिफ़ॉल्ट रूप से अपवाद फेंकने के लिए पीडीओ सेट करें

जावास्क्रिप्ट: डॉम लोड इवेंट्स, एक्जिक्यूटशन अनुक्रम, और $ (डॉक्यूमेंट) .ready ()

मुझे एहसास हुआ कि मुझे एक मौलिक ज्ञान का अभाव है जो वास्तव में एक पृष्ठ के रूप में होता है क्योंकि एक ब्राउज़र में लोड किया जा रहा है।

मान लें कि मेरे पास इस तरह की संरचना है:

<head> <script src="jquery.js" type="text/javascript"></script> <script src="first.js" type="text/javascript"></script> </head> <body> ... <script type="text/javascript" id="middle"> // some more JS here... </script> ... <script src="last.js" type="text/javascript"></script> </body> 

मेरे पास ये प्रश्न हैं:

  1. क्या हो रहा है चीजें? सबसे पहले तो डीओएम तो जेएस को निष्पादित किया जाता है, क्या यह उप-विपरीत है, या यह एक साथ है (या जैसे ही जेएस फाइल्स डाउनलोड करना समाप्त हो जाता है, डोम के संबंध में)? मुझे पता है कि लिपियों को क्रम में लोड किया जाता है

  2. जहां $(document).ready() फिट है? DOMContentLoaded के नेट टैब में मैं DOMContentLoaded ईवेंट और load इवेंट को देखता DOMContentLoaded । क्या $(document).ready()DOMContentLoaded ईवेंट आग होने पर $(document).ready() ट्रिगर किया? इस पर कोई भी ठोस जानकारी नहीं मिली (सभी केवल "जब डोम भरी हुई है" का उल्लेख करता है)

  3. क्या वास्तव में "जब DOM लोड हो रहा है" मतलब है? यह कि सभी एचटीएमएल / जेएस ब्राउज़र द्वारा डाउनलोड और पार्स किया गया है? या सिर्फ HTML?

  4. क्या निम्न परिदृश्य संभव है: $(document).ready() जो last.js में कोड को कॉल last.js , लेकिन last.js लोड होने से पहले चलाता है? यह सबसे अधिक संभावना होगी (पहले। first.js या इनलाइन कोड ब्लॉक में)? मैं इस परिदृश्य को कैसे रोक सकता हूं?

मैं उस समय की बड़ी तस्वीर को कम करना चाहता हूं, जब और क्या होगा (यदि सभी पर) निर्भर करता है।

Solutions Collecting From Web of "जावास्क्रिप्ट: डॉम लोड इवेंट्स, एक्जिक्यूटशन अनुक्रम, और $ (डॉक्यूमेंट) .ready ()"

जावास्क्रिप्ट निष्पादित होता है क्योंकि यह देखा जाता है। आम तौर पर , ब्राउज़र पृष्ठ को पर्स करना बंद कर देता है जैसे ही वह <script> टैग, डाउनलोड और स्क्रिप्ट चलाता है, और फिर चलते रहती है। यही कारण है कि इसे आमतौर पर नीचे <script> टैग डालने की सलाह दी जाती है: इसलिए जब उपयोगकर्ता स्क्रिप्ट डाउनलोड करने के लिए प्रतीक्षा करता है, तो उपयोगकर्ता के पास रिक्त पृष्ठ नहीं होता है।

हालांकि, फ़ायरफ़ॉक्स 3.5 से शुरू होने पर, पटकथा को पृष्ठभूमि में डाउनलोड किया जाता है, जबकि बाकी पृष्ठ प्रस्तुत किया जाता है। अब-असामान्य घटना में कि स्क्रिप्ट document.write का उपयोग करता है। document.write या समान, फ़ायरफ़ॉक्स बैकअप लेगा और आवश्यकतानुसार फिर से दोहराएगा मुझे नहीं लगता कि अन्य ब्राउज़र इस समय ऐसा करते हैं, लेकिन मुझे यह आश्चर्य नहीं होगा कि यह आने वाले समय में है, और IE कम से कम <script> टैग में एक defer विशेषता का समर्थन करता है जो पेज के बाद तक स्क्रिप्ट को लोड कर देगी लदा हुआ।

DOMContentLoaded बिल्कुल है कि: यह जैसे ही DOM लोड हो जाता है के रूप में आग लग जाती है। यही है, जैसे ही ब्राउज़र ने सभी HTML को पार्स कर दिया है और इसे आंतरिक रूप से एक पेड़ बनाया है यह लोड करने के लिए छवियों, सीएसएस आदि के लिए इंतजार नहीं करता है। जो भी जावास्क्रिप्ट आप चाहते हैं, उसे चलाने के लिए आपको आम तौर पर डोम की जरूरत है, इसलिए अन्य संसाधनों के लिए इंतजार नहीं करना अच्छा होगा। हालांकि, मेरा मानना ​​है कि फ़ायरफ़ॉक्स DOMContentLoaded का समर्थन करता है; अन्य ब्राउज़रों में, ready() सिर्फ एक ईवेंट को नियमित पुराने onload संलग्न करेगा।

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

  1. सभी लिपि में शामिल होते हैं, ताकि वे HTML में दिखाई दें, जैसे वे HTML पार्स किए जाते हैं।
  2. इसका अर्थ है कि सभी डोमेन ऑब्जेक्ट लोड किए गए हैं, और सभी में स्क्रिप्ट और सीएसएस शामिल हैं। (चित्र शायद अभी तक नहीं)।
  3. 2 देखें
  4. $ (दस्तावेज़) .ready () केवल एक बार सभी लिपियों और डॉम् ऑब्जेक्ट लोड होने पर कॉल हो जाता है, आपको ठीक होना चाहिए

http://javascript.about.com/od/hintsandtips/a/exeorder.htm आपको इसका जवाब देना चाहिए

मूल रूप से: पहले सभी डेटा लोड किए जाते हैं (एचटीएमएल), तो जेएस कोड सिर / शरीर के भीतर होता है जो फंक्शन में नहीं होता है या तैयार होता है या ऐसा कुछ जिसे पहले क्रियान्वित किया जाता है। वहां से यह क्रमिक रूप से लिपियों के बारे में जाता है

इसकी महत्वपूर्ण बात यह है कि जेएस यानी अर्थात् पर प्राथमिकता लेता है। सीएसएस लोडिंग – तो एक प्रदर्शन परिप्रेक्ष्य के रूप में आपके पास पृष्ठ के नीचे जेएस होना चाहिए।

तो @ 4: आपको उस दृश्य को रोकने की आवश्यकता नहीं है क्योंकि first.js को हमेशा last.js से पहले पढ़ा / निष्पादित किया जा रहा है