एएसपी ग्लोबलएसा फाइल

Global.asa फ़ाइल एक वैकल्पिक फ़ाइल है जिसमें ASP एप्लिकेशन के प्रत्येक पेज द्वारा उपयोग किए जा सकने वाले ऑब्जेक्ट, वेरियेबल और मथडलोग की घोषणा शामिल हो सकती है।

Global.asa फ़ाइल

Global.asa फ़ाइल एक वैकल्पिक फ़ाइल है जिसमें ASP एप्लिकेशन के प्रत्येक पेज द्वारा उपयोग किए जा सकने वाले ऑब्जेक्ट, वेरियेबल और मथडलोग की घोषणा शामिल हो सकती है। सभी वैध ब्राउज़र स्क्रिप्ट Global.asa में उपयोग किए जा सकते हैं。

Global.asa फ़ाइल में निम्नलिखित सामग्री शामिल की जा सकती है:

  • Application इवेंट
  • Session इवेंट
  • <object> घोषणा
  • TypeLibrary घोषणा
  • #include निर्देश

टिप्पणी:Global.asa फ़ाइल को ASP एप्लिकेशन के मुख्य डिरेक्ट्री में रखना चाहिए और प्रत्येक एप्लिकेशन में केवल एक Global.asa फ़ाइल हो सकती है。

Global.asa में इवेंट

Global.asa में, हम अनुप्रयोग और session ऑब्जैक्ट को स्टार्ट और एंड इवेंट में क्या करना है बता सकते हैं। इस कार्य को पूरा करने वाले कोड को इवेंट हैंडलर में रखा जाता है। Global.asa फ़ाइल चार प्रकार के घटनाओं को शामिल कर सकती है:

Application_OnStart - यह घटना जब पहला उपयोगकर्ता ASP अनुप्रयोग से पहला पृष्ठ अनुरोध करता है तब होती है। यह घटना वेब सर्वर फिर से शुरू होने या Global.asa फ़ाइल को संपादित किए जाने के बाद होती है। "Session_OnStart" घटना इस घटना के बाद तुरंत होती है।

Session_OnStart - यह घटना जब नए उपयोगकर्ता अपने ASP अनुप्रयोग में पहला पृष्ठ अनुरोध करता है तब होती है।

Session_OnEnd - यह घटना जब उपयोगकर्ता अपना session समाप्त करता है तब होती है। निर्धारित समय (मूलभूत घटना 20 मिनट) के भीतर यदि कोई पृष्ठ अनुरोध नहीं होता है, तो session समाप्त हो जाती है।

Application_OnEnd - यह घटना अंतिम उपयोगकर्ता अपना session समाप्त करने के बाद होती है। सामान्यतः, यह घटना वेब सर्वर बंद होने पर होती है। इस सबसे प्रोग्राम का उपयोग अनुप्रयोग बंद होने के बाद सेट को साफ करने के लिए किया जाता है, जैसे रिकॉर्ड को हटाना या टेक्स्ट फ़ाइल में जानकारी लिखना।

Global.asa फ़ाइल इस तरह हो सकती है:

<script language="vbscript" runat="server">
सब Application_OnStart
  'कुछ कोड
end sub
सब Application_OnEnd
  'कुछ कोड
end sub
सब Session_OnStart
  'कुछ कोड
end sub
सब Session_OnEnd
  'कुछ कोड
end sub
</script>

टिप्पणी:Global.asa फ़ाइल में ASP के स्क्रिप्ट सेपरेटर (<% और %>) का उपयोग नहीं कर सकते हैं, इसलिए हमें HTML के <script> एलीमेंट का उपयोग करना होगा।

<object> घोषणा

Global.asa फ़ाइल में session या application दायरे के ऑब्जैक्ट को बनाने के लिए <object> टैग का उपयोग कर सकते हैं।

टिप्पणी:<object> टैग को <script> टैग के बाहर रखना चाहिए।

व्याकरण:

<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....
</object>
पारामीटर वर्णन
scope ऑब्जैक्ट के दायरे (दायरा) (Session या Application) सेट करें।
id ऑब्जैक्ट को एक अद्वितीय id निर्दिष्ट करें।
ProgID

ClassID से जुड़े id। ProgID का रूपांकन है: [Vendor.]Component[.Version]।

ProgID या ClassID निर्दिष्ट करना आवश्यक है।

ClassID

COM क्लास ऑब्जैक्ट के लिए एक अद्वितीय id निर्दिष्ट करें।

ProgID या ClassID निर्दिष्ट करना आवश्यक है।

उदाहरण

पहला उदाहरण "MyAd" नाम का बनाया है और ProgID पारामीटर का उपयोग करने वाला session क्षेत्र का ऑब्जैक्ट बनाता है:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

दूसरा उदाहरण "MyConnection" नाम का बनाया है और ClassID पारामीटर का उपयोग करता है

<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object>

इस Global.asa फ़ाइल में घोषित इन ऑब्जैक्ट को अनुप्रयोग के किसी भी स्क्रिप्ट द्वारा उपयोग किया जा सकता है。

GLOBAL.ASA:

<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator">
</object>

आप एसपी अनुप्रयोग के किसी भी पृष्ठ से इस "MyAd" ऑब्जैक्ट को उद्धृत कर सकते हैं:

कोई .ASP फ़ाइल:

<%=MyAd.GetAdvertisement("/banners/adrot.txt")%> 

TypeLibrary घोषणा

TypeLibrary (टाइप लाइब्रेरी) एक कंटेनर है जिसमें COM ऑब्जैक्ट के लिए DLL फ़ाइल है। Global.asa में TypeLibrary के आह्वान को शामिल करके, COM ऑब्जैक्ट के स्थिरांकों को पहुँचा जा सकता है और ASP कोड भी एररों की बेहतर रिपोर्टिंग कर सकता है। अगर आपके साइट के अनुप्रयोग COM ऑब्जैक्ट के लिए जो टाइप लाइब्रेरी में घोषित है, तो आप Global.asa में टाइप लाइब्रेरी को घोषित कर सकते हैं。

व्याकरण:

<!--METADATA TYPE="TypeLib"
file="filename"
uuid="typelibraryuuid"
version="versionnumber"
lcid="localeid"
-->
पारामीटर वर्णन
file टाइप लाइब्रेरी के लिए संपूर्ण पथ निर्धारित करता है। पारामीटर file या uuid, दोनों अवश्य की जाते हैं。
uuid टाइप लाइब्रेरी के लिए अद्वितीय पहचान निर्धारित करता है। पारामीटर file या uuid, दोनों अवश्य की जाते हैं。
version वैकल्पिक। संस्करण को चुनने के लिए उपयोग किया जाता है। यदि निर्दिष्ट संस्करण नहीं मिला, तो सबसे निकटतम संस्करण का उपयोग किया जाएगा。
lcid वैकल्पिक। टाइप लाइब्रेरी के लिए क्षेत्र पहचान के लिए उपयोग किया जाता है。

एरर मूल्य

सर्वर ने निम्नलिखित एरर संदेशों में से एक वापस करेगा:

एरर कोड वर्णन
ASP 0222 अवैध क़िस्म लाइब्रेरी विशिष्टता
ASP 0223 टाइप लाइब्रेरी नहीं मिली
ASP 0224 टाइप लाइब्रेरी लोड नहीं कर सकती
ASP 0225 टाइप लाइब्रेरी वर्प की नहीं जा सकती

टिप्पणी:METADATA टैग Global.asa फ़ाइल के किसी भी स्थान पर ( <script> टैग के भीतर और बाहर भी) स्थित हो सकता है। हालांकि, हम अभी तक Global.asa फ़ाइल के शीर्ष में METADATA टैग को स्थापित करने की सिफारिश करते हैं।

सीमा

Global.asa फ़ाइल में उद्धरण की जा सकने वाली सामग्री के बारे में सीमा:

आपको Global.asa फ़ाइल में टेक्स्ट दिखाना नहीं सकते। यह फ़ाइल जानकारी देने के लिए नहीं है।

आपको केवल Application_OnStart और Application_OnEnd सब-सिपी में Server और Application ऑब्जेक्ट का उपयोग कर सकते हैं। Session_OnEnd सब-सिपी में, आपको Server, Application और Session ऑब्जेक्ट का उपयोग कर सकते हैं। Session_OnStart सब-सिपी में, आपको किसी भी अंतर्निहित ऑब्जेक्ट का उपयोग कर सकते हैं।

सब-सिपी का उपयोग कैसे करें

Global.asa अक्सर वेरियेबल को शुरूआती रूप से आवंटित करने के लिए उपयोग किया जाता है。

नीचे दिए गए उदाहरण में, विज़िटर के पहली बार स्टेशन पहुंचने के सटीक समय को निरीक्षण करने के तरीके को दिखाया गया है। समय "started" नामक Session ऑब्जेक्ट में संग्रहीत कर दिया जाता है और "started" वेरियेबल के मूल्य को अन्य अन्य ASP पृष्ठ द्वारा एक्सेस किया जा सकता है:

<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script>

Global.asa इसके अलावा पृष्ठ एक्सेस को नियंत्रित करने के लिए भी उपयोग किया जा सकता है。

नीचे दिए गए उदाहरण में, किसी नए विज़िटर को एक अन्य पृष्ठ पर रीडायरेक्ट करने के तरीके को दिखाया गया है, इस उदाहरण में "newpage.asp" पृष्ठ को रीडायरेक्ट किया जाता है:

<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>

हम अभी तक Global.asa में फ़ंक्शन शामिल कर सकते हैं।

इस उदाहरण में, जब Web सर्वर प्रारंभ होता है, Application_OnStart सब-सिपी भी प्रारंभ होता है। फिर, Application_OnStart सब-सिपी "getcustomers" नामक एक और सब-सिपी को बुलाता है। "getcustomers" सब-सिपी एक डाटाबेस खोलता है और फिर "customers" तालिका से एक रिकॉर्ड सेट ले लेता है। यह रिकॉर्ड सेट एक आयत्त्रा में आवंटित कर दिया जाता है, जिससे कि किसी भी ASP पृष्ठ को डाटाबेस को नहीं चाहते हुए इस आयत्त्रा को एक्सेस कर सकता है:

<script language="vbscript" runat="server">
sub Application_OnStart
getcustomers
end sub
sub getcustomers 
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs=conn.execute("select name from customers")
Application("customers")=rs.GetRows
rs.Close
conn.Close
end sub
</script>

Global.asa इंस्टेंस

इस उदाहरण में, हम एक ग्लोबल.asa फ़ाइल बनाना चाहते हैं जो वर्तमान विज़िटर्स की संख्या गणना कर सके।

Application_OnStart यह सेट करता है कि सर्वर प्रारंभ होने पर, Application वेरियबल "visitors" का मान 0 हो।

नए उपयोगकर्ता के प्रवेश के समय, Session_OnStart सब-स्क्रिप्ट वेरियबल "visitors" को 1 जोड़ देता है。

जब Session_OnEnd सब-स्क्रिप्ट ट्रिगर होता है, तो इस सब-स्क्रिप्ट से वेरियबल "visitors" से 1 कम कर देता है。

Global.asa फ़ाइल:

<script language="vbscript" runat="server">
Sub Application_OnStart
Application("visitors")=0
End Sub
Sub Session_OnStart
Application.Lock
Application("visitors")=Application("visitors")+1
Application.UnLock
End Sub
Sub Session_OnEnd
Application.Lock
Application("visitors")=Application("visitors")-1
Application.UnLock
End Sub
</script>

यह ASP फ़ाइल वर्तमान उपयोगकर्ता की संख्या दिखाएगी:

<html>
<head>
</head>
<body>
<p>अभी <%response.write(Application("visitors"))%> ऑनलाइन हैं!</p>
</body>
</html>