Wednesday, November 27, 2019

ASP.NET Web Page Life Cycle and Its Events

ASP.NET माइक्रोसॉफ्ट की एक वेब डेवलपमेंट प्लेटफॉर्म है। वेब प्लेटफार्म से अभिप्राय तकनीकों के ऐसे समुच्चय से है जिनकी मदद से किसी वेब एप्लीकेशन को डेवलप करना आसान हो जाता है। वेब प्लेटफॉर्म कई तरह के सॉफ्टवेयर्स का परस्पर संबंधित समूह होता है जो डेवलपर को वेब विकास कार्य को करने में मदद करता है। ASP.NET प्लेटफॉर्म के द्वारा किसी वेबफॉर्म या वेब एप्लीकेशन या वेबसाइट को डेवलप करना सरल हो जाता है। माइक्रोसॉफ्ट का ASP.NET टेक्नॉलॉजी अपने पुराने क्लासिकल ASP टेक्नोलॉजी का अपग्रेडेड रूप है। यह डॉट नेट फ्रेमवर्क पर आधारित है। एक तरफ जहां क्लासिकल एएसपी टेक्नोलॉजी COM कॉम मॉडल पर आधारित है वहीं दूसरी ओर ASP.NET टेक्नोलॉजी डॉट नेट फ्रेमवर्क पर आधारित है। जैसा कि हम जानते हैं कि डॉट नेट टेक्नोलॉजी COM टेक्नोलॉजी से बेहतर है। अतः वर्तमान समय में ASP.NET टेक्नोलॉजी की मदद से ही ज्यादातर वेबसाइट डिवेलप किए जाते हैं।

ASP.NET टेक्नोलॉजी के अंतर्गत वेबसाइट डिवेलप करते समय कुछ कांसेप्चुअल संकलनात्मक बातों का ध्यान रखना जरूरी है।  वेब पेज एप्लीकेशन चक्र को समझना जरूरी है।

जब किसी वेब पेज को ASP.NET टेक्नोलॉजी की सहायता से बनाया जाता है तो उसमें दो तरह के अलग अलग पेज बनते हैं। एक पेज पर वेब पेज के डिजाइन कार्य से संबंधित कोड होता है। इस पेज को डिजाइनर पेज कहते हैं जबकि दूसरे पेज पर पेज के बिहेवियर जैसे किसी बटन कंट्रोल को क्लिक करने पर उत्पन्न इवेंट से क्या कार्य होगा उसकी फंक्शनैलिटी अर्थात इवेंटहैंडलर मेथड का कोड होता है। इस दूसरे पेज को ASP.NET की भाषा में कोडबिहाइंड पेज करते हैं।

ASP.NET के अंतर्गत वेब डेवलपर को वेब डिजाइन से जुड़े कोड को लिखने की जरूरत नहीं होती। जब वेब डेवलपर टूलबॉक्स से किसी कंट्रोल को ड्रैग कर वेवफॉर्म पर रखता है तब डिजाइनर वाले पेज पर स्वतः ही अपने आप कोड क्रिएट हो जाता है। साथ ही साथ जब किसी कंट्रोल के प्रॉपर्टीज को प्रॉपर्टीज विंडो में जाकर डेवलपर अपडेट करता है तो डिजाइनर का कोड भी उसी के साथ साथ अपने आप अपडेट हो जाता है। यदि कोई बेव डेवलपर चाहे तो डिजाइनर के भीतर वेब पेज के html  एचटीएमएल टैग और एएसपी टैग को खुद लिख सकता है परंतु ऐसा करने पर समय की बर्बादी होगी। asp.net के अंतर्गत कोड के अपने आप लिखे जाने से डेवलपमेंट कार्य में अपार बचत होती है। डेवलपर को अपना फोकस ध्यान बस इवेंट हैंडलिंग से जुड़े कोड पर करना होता है। ASP.NET इवेंट आधारित प्रोग्रामिंग मॉडल का अनुसरण करता है।

जब किसी वेब पेज को ब्राउजर विंडो में ओपन किया जाता है तो ब्राउजर सॉफ्टवेयर उस वेब पेज में उपस्थित एचटीएमएल कंट्रोल और सर्वर कंट्रोल को सीधे डिस्प्ले नहीं कर देता है। यदि वेब फॉर्म में अलग-अलग कंट्रोल है तो उस कंट्रोल्स के डाटा को ब्राउज़र सॉफ्टवेयर एक रिक्वेस्ट के रूप में सर्वर सॉफ्टवेयर या सर्वर कंप्यूटर को भेज देता है। रिक्वेस्ट एक तरह का, सॉफ्टवेयर की भाषा मे, ऑब्जेक्ट होता है जो ब्राउज़र के इंफॉर्मेशन, स्क्रीन के इंफॉर्मेशन और कंट्रोल्स के डाटा इत्यादि को रिक्वेस्ट ऑब्जेक्ट में इनकैप्सूलएट अर्थात सुरक्षित कर सर्वर को भेज देता है। जब क्लाइंट ब्राउज़र द्वारा रिक्वेस्ट ऑब्जेक्ट को सर्वर को भेजा जाता है तो इस स्थिति में जो इवेंट पैदा होता है उसे PreInit इवेंट कहते हैं इसका अर्थ है प्री इनीशिएलाइजेशन। प्री इनीशिएलाइजेशन से तात्पर्य वेब पेज के कंट्रोल्स के इनीशिएलाइज होने से पूर्व की स्थिति से है। इसका अर्थ क्या है। इसका अर्थ यह है कि जब रिक्वेस्ट ऑब्जेक्ट हो सर्वर को भेज दिया जाता है तो सर्वर रिक्वेस्ट ऑब्जेक्ट का अध्ययन कर एक रिस्पांस ऑब्जेक्ट क्लाइंट ब्राउज़र को भेजता है। इस रिस्पांस ऑब्जेक्ट में ब्राउज़र के रिक्वेस्ट डाटा को रूपांतरित कर एक पेज के रूप में क्लाइंट ब्राउज़र को भेजा जाता है और वह वेबपेज क्लाइंट ब्राउजर द्वारा डिस्प्ले या प्रदर्शित किया जाता है इस तरह से एक पूरा राउंड ट्रिप होता है। इस चक्रीय ट्रिप को समझना सबसे जरूरी है। मान लीजिए कि किसी वेबपेज को ओपन किया जाता है जिसमें एक टेक्स्ट बॉक्स बना हुआ है तो यह टेक्स्ट बॉक्स वेब फॉर्म में ब्राउज़र द्वारा दिखा दिया जाता है। यदि यह टेक्स्ट बॉक्स सर्वर साइड टेक्सटबॉक्स हो तो इसका अर्थ क्या है। इसका कोड वेब पेज सर्वर पर गया और सर्वर ने सर्वर टेक्सटबॉक्स के कोड को एक्सक्यूट किया। इसके फलस्वरुप सर्वर टेक्स्ट बॉक्स इनिशियलआइस हो जाता है। कोई भी सर्वर टेक्स्ट बॉक्स या अन्य कंट्रोल इनीशिएलाइजर होने के बाद ही स्क्रीन पर डिस्प्ले नहीं हो जाता। इनीशिएलाइजेशन के बाद वेब फॉर्म या पेज मेमोरी में लोड होता है इस स्थिति को पेज लोड कहा जाता है। जब वेब पेज लोड हो जाता है तब उसके उपरांत उस वेब पेज पर स्थित सारे कंट्रोल्स रिकरसिव तरीके से मेमोरी में लोड होते हैं और उनमें मैनिपुलेशन इत्यादि होते हैं। पेज लोड के बाद कंट्रोल से जुड़े इवेंट फायर होते हैं। जब यह सारे काम हो जाते हैं तदोपरांत पेज लोड कंपलीट इवेंट फायर होता है जो इस बात का सूचक है की वेब पेज स्क्रीन पर पूरी तरह अपलोड हो गया। कई बार ऐसा होता है जब हम किसी वेब पेज को लोड होते हुए स्क्रीन पर देखते हैं तो धीरे धीरे सारे कंट्रोल्स अपीयर या विजिबल होते हैं। यह कंट्रोल की उपस्थिति पेज लोड के बाद की स्थिति होती है।

अंत में लास्ट में रेंडरिंग से जुड़े इवेंट होते हैं। वस्तुतः इससे जुड़े इवेंट इंटरनल आंतरिक रूप से संपादित होते हैं। जब वेब पेज को बंद किया जाता है तो पेज अनलोड इवेंट फायर होता है। पेज अनलोड करने पर पेज मेमोरी से रिमूव हो जाता है और मेमोरी क्लीन अप का काम किया एक अलग प्रोसेस द्वारा किया जाता है। इस तरीके से पेजलोड और पेज अनलोड होने के बीच कई सारे इवेंट कार्यरत होते हैं।

लेखक अजीत कुमार
अंतिम बार अद्यतन ९/१०/२०२१

No comments:

Post a Comment

Hot Topics