ໂດຍບົດສະຫລຸບ Global.asa ASP

ໂຕ້ມ 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, ພວກເຮົາສາມາດບອກກັບ application ແລະ session ວ່າຈະເຮັດຫຍັງໃນການເລີ່ມແລະຢຸດດຳເນີນການ. ຈົດສະຫຼະການທີ່ສາມາດບັນທຶກສຳລັບການດຳເນີນການຈະຖືກວາງຢູ່ໃນການດຳເນີນການວັດຖຸ. ບັນນາທິດ Global.asa ສາມາດກວມເອົາທັງສີ່ຊະນິດຂອງການເກີດຂຶ້ນ: }}

Application_OnStart - ງານການເກີດຂຶ້ນຈະເກີດຂຶ້ນທຸກໆຄັ້ງຜູ້ນຳໃຊ້ສຳລັບການດຳເນີນການ session. ການເກີດຂຶ້ນຈະເກີດຂຶ້ນພາຍຫຼັງວ່າຜູ້ນຳໃຊ້ກຳນົດວັດຖຸທຳອິດໃນການດຳເນີນການ ASP, ພາຍຫຼັງວ່າ Web 服务器ສະບາຍຫຼື ບັນນາທິດ Global.asa ຖືກຂຽນໃໝ່. "Event Session_OnStart" ຈະເກີດຂຶ້ນທັນທີຫຼັງວ່າການເກີດຂຶ້ນຈະເກີດຂຶ້ນ.

Session_OnStart - ງານການເກີດຂຶ້ນຈະເກີດຂຶ້ນທຸກໆຄັ້ງຜູ້ນຳໃຊ້ສຳລັບການດຳເນີນການ session.

Session_OnEnd - ງານການເກີດຂຶ້ນຈະເກີດຂຶ້ນທຸກໆຄັ້ງຜູ້ນຳໃຊ້ສຳລັບການດຳເນີນການ session. ວ່ານັ້ນບໍ່ມີເວລາບັນທຶກຄັ້ງໃດທີ່ຫຼາຍກວ່າການຂໍຫົວໜ້າເວັບໄຊ (ຄົນທີ່ຄວນເປັນການການຂໍຫົວໜ້າເວັບໄຊຈະເປັນ 20 ນາທີ່ເກີນກວ່າ).

Application_OnEnd - ງານການເກີດຂຶ້ນພາຍຫຼັງວ່າຜູ້ນຳໃຊ້ສຸດທ້າຍສຳລັບການດຳເນີນການ session. ຕົ້ນຕົວຂອງການເກີດຂຶ້ນແມ່ນວ່າງານການເກີດຂຶ້ນຈະເກີດຂຶ້ນພາຍຫຼັງວ່າ Web 服务器ຢຸດດຳເນີນ. ກົນລະບຽບຂອງຂັ້ນຕອນນັ້ນຈະຖືກບັນຈຸອອກຫຼືຂຽນໃນບົດທີ່ມີຂອບເຂດການດຳເນີນການ.

ບັນນາທິດ 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>

ຄວາມຄິດເຫັນ:ຍ້ອນບໍ່ສາມາດໃຊ້ສັນຍາການແບບ ASP (<% ແລະ %>) ໃນບັນນາທິດ Global.asa ເພື່ອເອົາຈົດສະຫຼະການເຂົ້າມາ, ພວກເຮົາຕ້ອງໃຊ້ສັນຍາການແບບ HTML <script>.

ການຖະແຫຼງ <object>.

ສາມາດສ້າງວັດຖຸທີ່ມີການດຳເນີນການ session ຫຼື application ຜ່ານແຜນ <object> ໃນບັນນາທິດ Global.asa.

ຄວາມຄິດເຫັນ:ແຜນ <object> ຕ້ອງຢູ່ຈາກແຜນ <script>.

语法:

<object runat="server" scope="scope" id="id"
{progid="progID"|classid="classID"}>
....

参数 ການອະທິບາຍ
scope ການຕັ້ງຂອບເຂດການດຳເນີນການຂອງວັດຖຸ (Session ຫຼື Application).
id ຈຳນວນທີ່ບັນທຶກເພື່ອຫຼາຍທາງສຳຄັນສຳລັບວັດຖຸ.
ProgID

id ທີ່ກ່ຽວຂ້ອງກັບ ClassID. ຮູບແບບ ProgID ຕ້ອງຈະເປັນ: [Vendor.]Component[.Version]

ProgID ຫຼື ClassID ຕ້ອງການຖືກກຳນົດຕາມຄວາມສຳຄັນ。

ClassID

ຈຳນວນທີ່ບັນທຶກເພື່ອຫຼາຍທາງສຳຄັນສຳລັບວັດຖຸ COM ປະເພດປະເພດບັນຊີ。

ProgID ຫຼື ClassID ຕ້ອງການຖືກກຳນົດຕາມຄວາມສຳຄັນ。

实例

第一个实例创建了一个名为 "MyAd" 且使用 ProgID 参数的 session 作用域对象:

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

第二个实例创建了名为 "MyConnection" 且使用 ClassID 参数的

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

在此 Global.asa 文件中声明的这些对象可被应用程序中的任何脚本使用。

GLOBAL.ASA:

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

您可以从 ASP 应用程序中的任意页面引用此 "MyAd" 对象:

某个 .ASP 文件:

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

TypeLibrary 声明

TypeLibrary (类型库)是一个容器,其中装有对应于 COM 对象的 DLL 文件。通过在 Global.asa 中包含对 TypeLibrary 的调用,可以访问 COM 对象的常量,同时 ASP 代码也能更好地报告错误。假如您的站点的应用程序依赖于已在类型库中声明过数据类型的 COM 对象,您可以在 Global.asa 中对类型库进行声明。

语法:


参数 ການອະທິບາຍ
file 规定指向类型库的绝对路径。参数 file 或者 uuid,两者缺一不可。
uuid 规定了针对类型库的唯一的标识符。参数 file 或者 uuid,两者缺一不可。
version 可选。用于选择版本。假如没有找到指定的版本,将使用最接近的版本。
lcid ອາດເປັນອັນຕະລາຍ

ຄວາມຜິດພາດ

ສະຖານນີຈະກັບຄືນສັນຍາວິດີຈາກຄຳແນະນຳທີ່ຖືກກ່າວຫາຫລັງນີ້:

ຄວາມຜິດພາດ ວິທະຍຸ ການອະທິບາຍ
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. ອາກາດນັ້ນບໍ່ສາມາດສະແດງຂໍ້ມູນ.

ທ່ານສາມາດນຳໃຊ້ບັນດາອັນສັນຍາສຳລັບ Server ແລະ Application ໃນກິດຈະກຳ Application_OnStart ແລະ Application_OnEnd. ໃນກິດຈະກຳ 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 ອີກອັນ

ໃນກໍລະນີນີ້ ພວກເຮົາຈະສ້າງເອກະສານ Global.asa ທີ່ສາມາດຄວາມຄິດການຄົນຢ້ຽມຢູ່ບ່ອນນັ້ນ.

Application_OnStart ກຳນົດຄວາມຜິດຫຼັງຂອງພັນທະສານ "visitors" ຄື 0 ຕອນທີ່ເຊີ່ງມີການເລີ່ມເວັນທະນະຄອນ.

ຕອນທີ່ຜູ້ໃຊ້ໃໝ່ຢ້ຽມມາຄົນຄົນໜຶ່ງຈະມີການສະແດງ Session_OnStart Sub ຈະເພີ່ມຈຳນວນ 1 ທີ່ພັນທະສານ "visitors".

ຕອນທີ່ຄູ່ມວນຊະນະກຳ Session_OnEnd ໄດ້ຖືກກະຕຸ້ນ ຄູ່ມວນຊະນະກຳຈະຫຼຸດຈຳນວນ 1 ຈາກພັນທະສານ "visitors".

ເອກະສານ 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>