2012-09-28 18 views
12

पर प्रतिपादन समाप्त कर दिया है क्या यह पता लगाना संभव है कि HTML ने लोड होने और पृष्ठ पर प्रतिपादन कब समाप्त किया है? यदि हां, तो कैसे?पता लगाएं कि HTML ने लोड हो रहा है और पृष्ठ

पृष्ठ में एचटीएमएल, AJAX को कॉल किया गया है, AJAX कॉल से डेटा वापस प्राप्त करता है, बहुत सारी जावास्क्रिप्ट सामग्री और कुछ छवियां भी प्राप्त होती हैं। जब सब कुछ खत्म हो गया है तो मैं जानना चाहता हूं। मैं जो नहीं कर सकता वह अंत में एक फ़ंक्शन कॉल छड़ी है, क्योंकि मुझे नहीं पता कि अंत कब होता है।

उदाहरण के लिए, पृष्ठ में बहुत सारे AJAX शैली तत्व हैं जो उपयोगकर्ता चुन सकते हैं और चुन सकते हैं, यानी उपयोगकर्ता 1 में उपयोगकर्ता 2 की तुलना में अलग-अलग तत्व हो सकते हैं और यहां तक ​​कि एक अलग क्रम में भी।

तो मैं जो नहीं कर सकता वह HTML प्रतिपादन के अंत को अनुकरण करने के लिए अंतिम कार्य का उपयोग करता है, क्योंकि मुझे नहीं पता कि कौन सा फ़ंक्शन अंतिम कार्य होगा।

+2

यह जानना अच्छा होगा कि इस प्रश्न को नकारात्मक वोट क्यों प्राप्त हुए हैं। – oshirowanen

उत्तर

8

समस्या समाप्त हो गया है पिछले कुछ वाक्य तुम कहाँ कहना है कि आप नहीं जानते कि उपयोगकर्ता विकल्प के कारण अंत कहां है। दो स्वचालित घटनाएं हैं जिन्हें आप जावास्क्रिप्ट को बाध्य कर सकते हैं। कौन सा jQuery $(document).ready() कहता है जिसका अर्थ है कि डोम हेरफेर के लिए तैयार है (छवियों के लोड होने से पहले और बाहरी स्क्रिप्ट और सीएसएस लोड होने के बाद) और जिसे आमतौर पर बॉडी onload कहा जाता है (jQuery में इसे $(window).load() के रूप में लिखा जा सकता है) जो सभी स्थैतिक संपत्तियों के बाद चलता है लाया गया। कम से कम डोम तैयार होने के बाद आपकी अजाक्स कॉल सभी आग लग जाएंगी और उन सभी के बाद क्या होता है इसके लिए कोई परिभाषित घटना नहीं है। इसके लिए आपको अपने आप को ट्रैक रखने की जरूरत है। आप "बर्न के आखिरी घोड़े" दृष्टिकोण का उपयोग कर सकते हैं। अपने अजाक्स कॉल के अंत में तर्क का एक छोटा सा हिस्सा जोड़ें, यह देखने के लिए कि क्या यह आखिरी है और "वास्तव में ऑलडोन" नामक कस्टम ईवेंट बढ़ाएं

-1

हाँ onload

<body onload="load()"> 

कि पता लगाने के हैं जब शरीर की सामग्री भरी हुई है।

+1

मैंने अभी ऑनलोड में अलर्ट के साथ यह कोशिश की है। पृष्ठ लोड होने/प्रतिपादन समाप्त होने से पहले चेतावनी प्रकट होती है। अलर्ट बंद करने से शेष पृष्ठ लोडिंग/प्रतिपादन को समाप्त करने की अनुमति देता है, लेकिन यह अभी भी सही नहीं है, क्योंकि मैं स्क्रीन पर लोडिंग समाप्त होने के बाद ही अलर्ट दिखाना चाहता हूं। – oshirowanen

+0

आपके पास शरीर से जुड़ा हुआ अधिभार ईवेंट था? – noel

+0

मैंने अभी इसे ' oshirowanen

-2

$ (दस्तावेज़)

.ready तुम्हारी मदद करेगा पता करने के लिए जब डोम अपने सवाल का जवाब देने के साथ अपने घटना और उसके लिए तैयार

+0

'.ready' छवियों को afaik लोड करने की प्रतीक्षा नहीं करेगा। –

+0

मेरे पास मेरे सभी AJAX कॉल और jquery फ़ंक्शन $ (दस्तावेज़) हैं .ready()। क्या मेरे पास $ (दस्तावेज़) में नहीं होना चाहिए .ready()? मैंने बस $ (दस्तावेज़) .ready() से सब कुछ ले जाने की कोशिश की है और केवल $ (दस्तावेज़) में चेतावनी है .ready()। पूरा पृष्ठ केवल आंशिक रूप से प्रस्तुत करता है और मुझे एक चेतावनी मिलती है। अलर्ट बंद करना पृष्ठ की लोडिंग को समाप्त नहीं करता है। – oshirowanen

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