कुछ बातें पहले ध्यान दें। एमएस ने Sys.Application
नामक "क्लाइंटसाइड रनटाइम ऑब्जेक्ट" का एक प्रकार का आविष्कार किया। यह इस प्रकार है, पृष्ठ के [clientside] जीवन भर init
, load
, और unload
घटनाओं को ऊपर उठाने के हैंडल:
Sys.Application.initialize()
जीवन चक्र के init
भाग शुरू होता है। यह initialize()
सब clientside AJAX नियंत्रण, जिसके बाद वे तैयार हैं प्रोग्राम के
Sys.Application
शुरू होता है जीवन चक्र के load
भाग से बातचीत की जा करने के लिए, सभी संचालकों कि
- अंत में इस घटना की सदस्यता ली है बुला, यह वैश्विक कॉल समारोह
pageLoad
(यदि कोई परिभाषित किया गया है)
चरण 2) और 3) हर आंशिक (यानी AJAX + UpdatePanel) पोस्टबैक के लिए दोहराया जाता है।
तो अंत में उत्तर: pageLoad
Sys.Application.add_load()
पर एक आसान शॉर्टकट है।
साथ
window.onload
से इसके संबंध के संबंध
हालांकि, बातें दिलचस्प पाने के लिए शुरू करते हैं। अनिवार्य रूप से, एमएस आग केवल के बाद init
चरण पूरा हो गया window.onload
की जरूरत है। लेकिन आप नियंत्रित नहीं कर सकते जब ब्राउज़र, onload
को सक्रिय कर देगा के रूप में यह "सामग्री भरी हुई" से जुड़ा हुआ है। यह "the window.onload
problem" के रूप में जाना जाता है:
ऑनलोड घटना आग के बाद सभी पेज सामग्री (छवियों और अन्य द्विआधारी सामग्री सहित) लोड होना। अपने पेज छवियों के बहुत सारे शामिल है, तो आप एक ध्यान देने योग्य अंतराल देख सकते हैं इससे पहले कि पेज सक्रिय हो जाता है।
तो, उन्होंने अभी अपने स्वयं के "विशेष" फ़ंक्शन का आविष्कार अपने ईवेंट जीवन चक्र में सही समय पर आग लगाने के लिए किया और इसे "pageLoad"
कहा। और यह चाल जो उन्होंने इस कस्टम इवेंट लाइफ चक्र को किकऑफ करने के लिए उपयोग की थी, place the call to Sys.Application.initialize()
just before the closing </form>
tag थी। सर्वरसाइड रनटाइम यह करता है। चतुर पाठकों नोट करेंगे कि इस चाल, के बाद से किसी भी कोड आप pageLoad
में डाल द्विआधारी सामग्री (w/ one rare catch for IE) के स्वतंत्र सक्रिय कर देगा एमएस window.onload
समस्या को हल करने की अनुमति दी।
> क्या वे वही कार्य करते हैं?
अवधारणात्मक हां, अभ्यास में window.onload
समस्या के कारण बिल्कुल नहीं। एकमात्र नियम यह है कि आपको pageLoad
में केवल अपने AJAX नियंत्रणों से कोड करना चाहिए, क्योंकि window.onload
अपने स्वयं के ईवेंट प्रक्षेपवक्र का पालन करता है।
> या किसी को दूसरे से पहले बुलाया जाता है?
वे पूरी तरह से 100% स्वतंत्र हैं।
> या कोई स्वचालित रूप से कॉल किया जाएगा और दूसरा नहीं?
यदि आप उन्हें परिभाषित करते हैं तो वे दोनों को बुलाया जाएगा।
आपका उत्तर पूरा हो गया है, लेकिन मेरे पास पेज लोड के साथ एक और समस्या है, जब मैंने अपने पेज में रखा तो मुझे पता चला कि इसे स्वचालित रूप से बुलाया जाता है और कहा जाता है, ध्यान दें: मेरे पास टेलरिक है: पृष्ठ पर RadAjaxManager, इसलिए यह एक त्रुटि के कारण है ऐसा हो रहा है या इसे सामान्य रखने के लिए सामान्य है "जैसा कि इसे टाइमर द्वारा बुलाया जाता है"? –
अच्छा लिखना +1 - समाधान बहुत हंसते हुए माइक्रोसॉफ्ट – annakata
@amrelgarhy: मेरा अद्यतन उत्तर देखें: चरण 2) और 3) प्रत्येक आंशिक (यानी AJAX + UpdatePanel) पोस्टबैक पर कॉल किए जाते हैं। –