ASP The Global.asa फ़ाइल
Global.asa फ़ाइल
Global.asa फ़ाइल एक वैकल्पिक फ़ाइल है जिसमें ऑब्जेक्ट, चर और विधियों की घोषणाएं शामिल हो सकती हैं जिन्हें ASP एप्लिकेशन में प्रत्येक पृष्ठ द्वारा एक्सेस किया जा सकता है।
Global.asa के भीतर सभी मान्य ब्राउज़र स्क्रिप्ट (JavaScript, VBScript, JScript, PerlScript, आदि) का उपयोग किया जा सकता है।
Global.asa फ़ाइल में केवल निम्नलिखित हो सकते हैं:
- आवेदन कार्यक्रम
- सत्र की घटनाएं
- <वस्तु> घोषणाएं
- प्रकार पुस्तकालय घोषणाएँ
- #निर्देश शामिल करें
नोट: Global.asa फ़ाइल को ASP अनुप्रयोग की मूल निर्देशिका में संग्रहीत किया जाना चाहिए, और प्रत्येक अनुप्रयोग में केवल एक Global.asa फ़ाइल हो सकती है।
Global.asa . में कार्यक्रम
Global.asa में आप एप्लिकेशन और सत्र ऑब्जेक्ट को बता सकते हैं कि एप्लिकेशन/सत्र शुरू होने पर क्या करना है और एप्लिकेशन/सत्र समाप्त होने पर क्या करना है। इसके लिए कोड ईवेंट हैंडलर में रखा गया है। Global.asa फ़ाइल में चार प्रकार के ईवेंट हो सकते हैं:
Application_OnStart - तब होता है जब पहला उपयोगकर्ता ASP एप्लिकेशन में पहले पृष्ठ पर कॉल करता है। वेब सर्वर के पुनरारंभ होने के बाद या Global.asa फ़ाइल संपादित होने के बाद यह घटना होती है। "Session_OnStart" इवेंट इस इवेंट के तुरंत बाद होता है।सत्र_ऑनस्टार्ट - यह घटना तब होती है जब कोई नया उपयोगकर्ता एएसपी आवेदन में अपने पहले पृष्ठ का अनुरोध करता है।
सत्र_ऑनएंड - यह घटना तब होती है जब कोई उपयोगकर्ता सत्र समाप्त करता है। एक उपयोगकर्ता-सत्र एक निर्दिष्ट समय के लिए उपयोगकर्ता द्वारा किसी पृष्ठ का अनुरोध नहीं किए जाने के बाद समाप्त होता है (डिफ़ॉल्ट रूप से यह 20 मिनट है)।
Application_OnEnd - अंतिम उपयोगकर्ता द्वारा सत्र समाप्त करने के बाद यह घटना होती है। सामान्यतया, यह घटना तब होती है जब कोई वेब सर्वर बंद हो जाता है। इस प्रक्रिया का उपयोग एप्लिकेशन के बंद होने के बाद सेटिंग्स को साफ करने के लिए किया जाता है, जैसे रिकॉर्ड हटाना या टेक्स्ट फाइलों में जानकारी लिखना।
Global.asa फ़ाइल कुछ इस तरह दिख सकती है:
<script language="vbscript" runat="server">
sub Application_OnStart
'some code
end sub
sub Application_OnEnd
'some code
end sub
sub Session_OnStart
'some code
end sub
sub Session_OnEnd
'some code
end sub
</script>
नोट: क्योंकि हम Global.asa फ़ाइल में स्क्रिप्ट सम्मिलित करने के लिए ASP स्क्रिप्ट सीमांकक (<% और %>) का उपयोग नहीं कर सकते हैं, इसलिए हम HTML <script> तत्व के अंदर सबरूटीन डालते हैं।
<वस्तु> घोषणाएं
<ऑब्जेक्ट> टैग का उपयोग करके Global.asa में सत्र या एप्लिकेशन स्कोप के साथ ऑब्जेक्ट बनाना संभव है।
नोट: <ऑब्जेक्ट> टैग <script> टैग के बाहर होना चाहिए!
वाक्य - विन्यास
<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....
</object>
Parameter | Description |
---|---|
scope | Sets the scope of the object (either Session or Application) |
id | Specifies a unique id for the object |
ProgID | An id associated with a class id. The format for ProgID is [Vendor.]Component[.Version]
Either ProgID or ClassID must be specified. |
ClassID | Specifies a unique id for a COM class object. Either ProgID or ClassID must be specified. |
उदाहरण
पहला उदाहरण ProgID पैरामीटर का उपयोग करके "MyAd" नामक सत्र क्षेत्र का एक ऑब्जेक्ट बनाता है:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object>
दूसरा उदाहरण ClassID पैरामीटर का उपयोग करके "MyConnection" नामक एप्लिकेशन स्कोप का ऑब्जेक्ट बनाता है:
<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>
You could reference the object "MyAd" from any page in the ASP application:
SOME .ASP FILE:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
प्रकार पुस्तकालय घोषणाएँ
टाइप लाइब्रेरी COM ऑब्जेक्ट से संबंधित DLL फ़ाइल की सामग्री के लिए एक कंटेनर है। Global.asa फ़ाइल में TypeLibrary को कॉल शामिल करके, COM ऑब्जेक्ट के स्थिरांक तक पहुँचा जा सकता है, और त्रुटियों को ASP कोड द्वारा बेहतर रिपोर्ट किया जा सकता है। यदि आपका वेब एप्लिकेशन COM ऑब्जेक्ट्स पर निर्भर करता है, जिसने टाइप लाइब्रेरी में डेटा प्रकार घोषित किया है, तो आप Global.asa में टाइप लाइब्रेरी घोषित कर सकते हैं।
वाक्य - विन्यास
<!--METADATA TYPE="TypeLib"
file="filename"
uuid="id"
version="number"
lcid="localeid"
-->
Parameter | Description |
---|---|
file | Specifies an absolute path to a type library.
Either the file parameter or the uuid parameter is required |
uuid | Specifies a unique identifier for the type library.
Either the file parameter or the uuid parameter is required |
version | Optional. Used for selecting version. If the requested version is not found, then the most recent version is used |
lcid | Optional. The locale identifier to be used for the type library |
त्रुटि मान
सर्वर निम्न त्रुटि संदेशों में से एक लौटा सकता है:
Error Code | Description |
---|---|
ASP 0222 | Invalid type library specification |
ASP 0223 | Type library not found |
ASP 0224 | Type library cannot be loaded |
ASP 0225 | Type library cannot be wrapped |
नोट: मेटाडेटा टैग Global.asa फ़ाइल में कहीं भी दिखाई दे सकते हैं (<script> टैग के अंदर और बाहर दोनों)। हालांकि, यह अनुशंसा की जाती है कि मेटाडेटा टैग Global.asa फ़ाइल के शीर्ष के पास दिखाई दें।
प्रतिबंध
आप Global.asa फ़ाइल में क्या शामिल कर सकते हैं, इस पर प्रतिबंध:
- आप Global.asa फ़ाइल में लिखा हुआ पाठ प्रदर्शित नहीं कर सकते। यह फ़ाइल जानकारी प्रदर्शित नहीं कर सकती
- आप केवल Application_OnStart और Application_OnEnd सबरूटीन्स में सर्वर और एप्लिकेशन ऑब्जेक्ट का उपयोग कर सकते हैं। सत्र_ऑनएंड सबरूटीन में, आप सर्वर, एप्लिकेशन और सत्र ऑब्जेक्ट का उपयोग कर सकते हैं। सत्र_ऑनस्टार्ट सबरूटीन में आप किसी भी अंतर्निहित वस्तु का उपयोग कर सकते हैं
सबरूटीन्स का उपयोग कैसे करें
Global.asa का उपयोग अक्सर वेरिएबल को इनिशियलाइज़ करने के लिए किया जाता है।
नीचे दिया गया उदाहरण दिखाता है कि किसी वेब साइट पर विज़िटर के पहली बार आने के सटीक समय का पता कैसे लगाया जाए। समय "प्रारंभ" नामक सत्र चर में संग्रहीत किया जाता है, और "प्रारंभ" चर के मान को एप्लिकेशन में किसी भी एएसपी पृष्ठ से एक्सेस किया जा सकता है:
<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 फ़ाइल में फ़ंक्शन शामिल कर सकते हैं।
नीचे दिए गए उदाहरण में Application_OnStart सबरूटीन तब होता है जब वेब सर्वर प्रारंभ होता है। फिर Application_OnStart सबरूटीन "getcustomers" नामक एक अन्य सबरूटीन को कॉल करता है। "getcustomers" सबरूटीन एक डेटाबेस खोलता है और "ग्राहक" तालिका से एक रिकॉर्ड सेट प्राप्त करता है। रिकॉर्ड सेट एक सरणी को सौंपा गया है, जहां इसे किसी भी एएसपी पेज से डेटाबेस से पूछताछ किए बिना एक्सेस किया जा सकता है:
<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 उदाहरण
इस उदाहरण में हम एक Global.asa फ़ाइल बनाएंगे जो वर्तमान विज़िटर की संख्या की गणना करती है।
- जब सर्वर शुरू होता है तो Application_OnStart अनुप्रयोग चर "विज़िटर" को 0 पर सेट करता है
- जब भी कोई नया आगंतुक आता है, तो सत्र_ऑनस्टार्ट सबरूटीन चर "विज़िटर" में एक जोड़ता है
- जब भी यह सबरूटीन चालू होता है, तो हर बार जब सत्र_ऑनएंड सबरूटीन "विज़िटर" में से एक को घटा देता है
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 फ़ाइल में वर्तमान विज़िटर की संख्या प्रदर्शित करने के लिए:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%>
online now!</p>
</body>
</html>