Classic ASP Part-5 ASP Components
ASP Components
पिछले पोस्ट में हमने ASP के अंतर्गत उपयोग होने वाले कुछ महत्वपूर्ण बने बनाए ऑब्जेक्टस जैसे application, request, response, cookies, session की चर्चा की। अब हम ASP के अंतर्गत उपयोग किए जाने वाले कॉम्पोनेंट्स की चर्चा करेंगे।
ऑब्जेक्ट की तुलना में कॉम्पोनेंट्स खास होते हैं क्योंकि इनका उपयोग किसी खास काम के लिए किया जाता है, उदाहरण के लिए AdRotator कंपोनेंट, इसका उपयोग किसी बैनर एडवर्टाइजमेंट को वेब पेज पर दिखाने के लिए किया जाता है। इसी तरह Counter कंपोनेंट का उपयोग वेबसाइट पर विजिट करने वाले विजिटर की संख्या की गिनती करने के लिए किया जाता है जबकि पेज काउंटर कंपोनेंट का उपयोग ना केवल विजिटर के विजिट की संख्या को ट्रैक करने के लिए आता है बल्कि किसी खास पेज पर कितना हिट हुआ उसकी भी काउंटिंग की जाती है। इसके अलावा और भी कई तरह के कंपोनेंट है जैसे एक्टिवेक्स डाटा ऑब्जेक्ट ADO कंपोनेंट्स जिसका उपयोग कर किसी डेटाबेस जैसे माइक्रोसॉफ्ट एसक्यूएल सर्वर में डाटा को स्टोर किया जा सकता है और उस सर्वर से फिर डाटा को प्राप्त किया जा सकता है।
Objects vs Components
ASP के बिल्ट इन ऑब्जेक्ट्स को क्रिएट करने की डेवलपर को जरूरत नहीं होती है क्योंकि ये ऑब्जेक्ट्स बने बनाए होते हैं जबकि इसके विपरीत कंपोनेंट्स को क्रिएट करने के लिए यूजर को खुद प्रयास करना होता है।
यूजर को कंपोनेंट्स खुद क्रिएट करना होता है। जब किसी कंपोनेंट को क्रिएट किया जाता है तो उसका लाइफ और स्कोप तय किया जाता है। जिस प्रकार किसी वेरिएबल का स्कोप होता है, लाइफ होता है, ठीक उसी प्रकार कंपोनेंट्स का भी लाइफ और स्कोप होता है।
ASP Objects बने बनाए हैं और सामान्य उपयोग के लिए है जबकि का निर्माण डेवलपर के द्वारा ख़ास उपयोग के किया जाता है
Page Scope
सर्वर पर किसी कंपोनेंट को क्रिएट करने के लिए Server ऑब्जेक्ट का उपयोग किया जाता है। उसके CreateObject मेथड का उपयोग कर कंपोनेंट को क्रिएट किया जाता है जैसा कि नीचे के उदाहरण में दिखाया गया है।
Set myDix = Server.CreateObject("Scripting.Dictionary")
ऊपर के उदाहरण में myDix वेरिएबल का स्कोप वहीं पेज है जिस पेज में इस कोड को लिखा गया है। जैसे ही उस पेज को छोड़कर यूज़र दूसरे पेज पर जाता है तब यह वेरिएबल अपने आप नष्ट/डिस्ट्रॉय हो जाता है।
Session Scope
अगर हम चाहते हैं कि ऊपर क्रिएट किए गए कंपोनेंट का लाइफ़ या स्कोप दूसरे पेज पर भी हो अर्थात जब यूजर एक पेज से दूसरे पेज पर जाए तब भी कंपोनेंट एक्जिस्ट करें, उपस्थित हो, नष्ट न हो तो इसके लिए हम सेशन ऑब्जेक्ट का उपयोग करते हैं।
पहला तरीका
सेशन ऑब्जेक्ट की मदद से हम किसी कंपोनेंट के स्कोप को सेशन लेवल का कर देते हैं।
<% Set Session("myDix" ) = Server.CreateObject("Scripting.Dictionary") %>
दूसरा तरीका
किसी कंपोनेंट के स्कोप को सेसन स्तर का बनाने के लिए एक दूसरा तरीका भी है। इसके अंतर्गत HTML के भीतर <OBJECT> Tag का उपयोग करते हैं। इस टैग के attributes द्वारा Session स्तर निश्चित किया जाता है।
<OBJECT runat="server" scope="session" id="myDix" progid="MSWC.BrowserType">
ध्यान दीजिए कि सर्वर लेवल के कंपोनेंट को बनाने के लिए 4 प्रॉपर्टीज का उपयोग किया गया है: RUNAT="SERVER" बताता है कि यह कंपोनेंट सर्वर पर रन होगा जबकि इस कंपोनेंट के स्कोप को बताने के लिए स्कोप प्रॉपर्टी का उपयोग किया गया है और उसकी वैल्यू सेशन दी गई है जो यह बता रहा है कि पूरे सेशन के दौरान यह कंपोनेंट उपस्थित होगा। तीसरा प्रोपर्टी आईडी है, आईडी का उपयोग कोड के भीतर इस कंपोनेंट की पहचान के लिए है जबकि PROGID="MSWC.BrowserType" का उपयोग सर्वर के द्वारा इस कंपोनेंट की पहचान के लिए है। इस नाम के द्वारा कंपोनेंट का रजिस्ट्रेशन सर्वर करता है।
Application level Scope
जब किसी कंपोनेंट को एप्लीकेशन लेवल का बनाया जाता है तो यह कंपोनेंट तब तक उपलब्ध होता है जब तक इस सर्वर डाउन ना हो जाए अथवा एप्लीकेशन को शटडाउन न कर दिया जाए।
एप्लीकेशन स्कोप को तय करने के लिए भी दो तरीके हैं जैसा कि सेशन स्कोप के लिए है।
पहला तरीका
अगर हम चाहते हैं कि ऊपर क्रिएट किए गए कंपोनेंट का लाइफ़ या स्कोप पूरे एप्लिकेशन की लाइफ के दौरान हो, कंपोनेंट एक्जिस्ट करें, उपस्थित हो, नष्ट न हो तो इसके लिए हम एप्लिकेशन ऑब्जेक्ट का उपयोग करते हैं। एप्लिकेशन ऑब्जेक्ट की मदद से हम किसी कंपोनेंट के स्कोप को एप्लिकेशन लेवल का कर देते हैं।
<% Set Application("myDix" ) = Server.CreateObject("Scripting.Dictionary") %>
दूसरा तरीका
किसी कंपोनेंट के स्कोप को एप्लिकेशन स्तर का बनाने के लिए एक दूसरा तरीका भी है। इसके अंतर्गत HTML के भीतर <OBJECT> Tag का उपयोग करते हैं। इस टैग के attributes द्वारा एप्लिकेशन स्तर निश्चित किया जाता है।
टिप्पणियाँ
एक टिप्पणी भेजें