ASP Global.asa ဖိုင်
Global.asa ဖိုင်
Global.asa ဖိုင်သည် ASP အပလီကေးရှင်းရှိ စာမျက်နှာတိုင်းမှ ဝင်ရောက်နိုင်သည့် အရာဝတ္ထုများ၊ ကွဲပြားမှုများနှင့် နည်းလမ်းများပါ၀င်သည့် ရွေးချယ်နိုင်သောဖိုင်တစ်ခုဖြစ်သည်။
တရားဝင်ဘရောက်ဆာ script များ (JavaScript၊ VBScript၊ JScript၊ PerlScript စသည်ဖြင့်) ကို Global.asa တွင် သုံးနိုင်သည်။
Global.asa ဖိုင်တွင် အောက်ပါတို့သာ ပါဝင်နိုင်သည်-
- လျှောက်လွှာဖြစ်ရပ်များ
- အပိုင်းပွဲများ
- <object> ကြေငြာချက်များ
- TypeLibrary ကြေငြာချက်များ
- #ညွှန်ကြားချက် ပါ၀င်သည်
မှတ်ချက်- Global.asa ဖိုင်ကို ASP အပလီကေးရှင်း၏ အမြစ်လမ်းညွှန်တွင် သိမ်းဆည်းထားရမည်ဖြစ်ပြီး အပလီကေးရှင်းတစ်ခုစီတွင် Global.asa ဖိုင်တစ်ခုသာ ရှိနိုင်ပါသည်။
Global.asa ရှိ ပွဲများ
Global.asa တွင် သင်သည် အပလီကေးရှင်း/စက်ရှင်ကို စတင်သည့်အခါ ဘာလုပ်ရမည်နှင့် အက်ပ်လီကေးရှင်း/စက်ရှင် ပြီးဆုံးသည့်အခါ ဘာလုပ်ရမည်ကို အပလီကေးရှင်းနှင့် စက်ရှင်ကို ပြောပြနိုင်သည်။ ၎င်းအတွက် ကုဒ်ကို event handlers တွင် ထည့်သွင်းထားသည်။ Global.asa ဖိုင်တွင် ဖြစ်ရပ်လေးမျိုး ပါဝင်နိုင်သည်-
Application_OnStart - FIRST အသုံးပြုသူက ASP အပလီကေးရှင်းတစ်ခုရှိ ပထမစာမျက်နှာကို ခေါ်သောအခါ ဖြစ်ပေါ်သည်။ ဝဘ်ဆာဗာကို ပြန်လည်စတင်ပြီးနောက် သို့မဟုတ် Global.asa ဖိုင်ကို တည်းဖြတ်ပြီးနောက် ဤဖြစ်ရပ် ဖြစ်ပေါ်သည်။ "Session_OnStart" အစီအစဉ်သည် ဤဖြစ်ရပ်ပြီးနောက် ချက်ချင်းဖြစ်ပေါ်ပါသည်။Session_OnStart - ASP အပလီကေးရှင်းတွင် အသုံးပြုသူအသစ်က ၎င်း၏ပထမဆုံးစာမျက်နှာကို တောင်းဆိုသည့်အခါတိုင်း ဤဖြစ်ရပ် ဖြစ်ပေါ်ပါသည်။
Session_OnEnd - အသုံးပြုသူသည် စက်ရှင်တစ်ခုအား အဆုံးသတ်သည့်အခါတိုင်း ဤဖြစ်ရပ် ဖြစ်ပေါ်ပါသည်။ သတ်မှတ်ထားသောအချိန်တစ်ခုအတွက် စာမျက်နှာတစ်ခုအား အသုံးပြုသူမှ မတောင်းဆိုရသေးသည့်နောက် သုံးစွဲသူ-ဆက်ရှင်သည် ပြီးဆုံးသည် (ပုံမှန်အားဖြင့် ၎င်းသည် မိနစ် 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 ဖိုင်တွင် scripts များထည့်သွင်းရန် ASP script ပိုင်းခြားနားချက် (<% နှင့် %>) ကို အသုံးမပြုနိုင်သောကြောင့်၊ ကျွန်ုပ်တို့သည် HTML <script> ဒြပ်စင်အတွင်း အခွဲများကို ထည့်သွင်းထားပါသည်။
<object> ကြေငြာချက်များ
<object> tag ကို အသုံးပြု၍ Global.asa တွင် session သို့မဟုတ် application နယ်ပယ်ဖြင့် အရာဝတ္ထုများကို ဖန်တီးနိုင်သည်။
မှတ်ချက်- <object> tag သည် <script> tag အပြင်ဘက် ဖြစ်သင့်သည်။
အထားအသို
<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 ဖိုင်တွင် ဖော်ပြထားသော အရာများကို အပလီကေးရှင်းရှိ မည်သည့် script မဆို အသုံးပြုနိုင်ပါသည်။
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")%>
အမျိုးအစားစာကြည့်တိုက် ကြေငြာချက်များ
TypeLibrary သည် 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 |
မှတ်ချက်- METADATA တဂ်များသည် Global.asa ဖိုင်တွင် မည်သည့်နေရာတွင်မဆို ပေါ်လာနိုင်သည် ( <script> တဂ်များအတွင်းနှင့် ပြင်ပ)။ သို့သော်၊ METADATA တဂ်များကို Global.asa ဖိုင်၏ထိပ်အနီးတွင် ပေါ်လာစေရန် အကြံပြုထားသည်။
ကန့်သတ်ချက်များ
Global.asa ဖိုင်တွင် သင်ထည့်သွင်းနိုင်သည့်အရာအပေါ် ကန့်သတ်ချက်များ-
- Global.asa ဖိုင်တွင် ရေးထားသော စာသားကို သင်သည် မပြနိုင်ပါ။ ဤဖိုင်သည် အချက်အလက်ကို မပြသနိုင်ပါ။
- သင်သည် Application_OnStart နှင့် Application_OnEnd အခွဲများတွင်သာ ဆာဗာနှင့် အပလီကေးရှင်းအရာဝတ္ထုများကိုသာ အသုံးပြုနိုင်သည်။ Session_OnEnd subroutine တွင်၊ သင်သည် Server၊ Application နှင့် Session အရာဝတ္ထုများကို အသုံးပြုနိုင်သည်။ Session_OnStart လုပ်ရိုးလုပ်စဉ်ခွဲတွင် သင်သည် မည်သည့် built-in အရာဝတ္ထုကိုမဆို အသုံးပြုနိုင်သည်။
Subroutines ကိုအသုံးပြုနည်း
Global.asa ကို variable များကို အစပြုရန် မကြာခဏ အသုံးပြုပါသည်။
အောက်ဖော်ပြပါနမူနာသည် ဧည့်သည်တစ်ဦး ဝဘ်ဆိုက်သို့ ပထမဆုံးရောက်ရှိသည့်အချိန်အတိအကျကို မည်သို့သိရှိနိုင်ပုံကို ပြသထားသည်။ အချိန်ကို "စတင်သည်" ဟုအမည်ပေးထားသည့် ဆက်ရှင်ကိန်းရှင်တစ်ခုတွင် သိမ်းဆည်းထားပြီး "စတင်သည်" ကိန်းရှင်၏တန်ဖိုးကို အပလီကေးရှင်းရှိ မည်သည့် 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 ဖိုင်တွင် လုပ်ဆောင်ချက်များကို သင် ထည့်သွင်းနိုင်သည်။
Application_OnStart ၏အောက်ရှိ နမူနာတွင် ဝဘ်ဆာဗာ စတင်သည့်အခါ ဖြစ်ပေါ်သည်။ ထို့နောက် Application_OnStart လုပ်ရိုးလုပ်စဉ်ခွဲမှ "getcustomers" ဟုခေါ်သော အခြားလုပ်ရိုးလုပ်စဉ်ခွဲတစ်ခုကို ခေါ်ဆိုသည်။ "getcustomers" လုပ်ရိုးလုပ်စဉ်အခွဲသည် ဒေတာဘေ့စ်တစ်ခုဖွင့်ပြီး "ဖောက်သည်များ" ဇယားမှ သတ်မှတ်မှတ်တမ်းတစ်ခုကို ထုတ်ယူသည်။ ဒေတာဘေ့စ်ကို မမေးဘဲ မည်သည့် ASP စာမျက်နှာမှ ဝင်ရောက်ကြည့်ရှုနိုင်စေမည့် array တစ်ခုတွင် မှတ်တမ်းသတ်မှတ်ထားသည်-
<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 အဖြစ် သတ်မှတ်သည်။
- Session_OnStart လုပ်ရိုးလုပ်စဉ်အခွဲသည် ဧည့်သည်အသစ်ရောက်လာတိုင်း ပြောင်းလဲနိုင်သော "ဧည့်သည်များ" သို့ တစ်ခုထပ်ထည့်သည်
- Session_OnEnd လုပ်ရိုးလုပ်စဉ်အခွဲသည် ဤလုပ်ရိုးလုပ်စဉ်ခွဲကို စတင်လိုက်တိုင်း "ဧည့်သည်များ" မှ တစ်ခုကို နုတ်ယူသည်
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>