Latest web development tutorials

ASP Global.asa

ไฟล์ Global.asa

ไฟล์ Global.asa เป็นไฟล์ตัวเลือกที่สามารถมีการประกาศเป็นโปรแกรม ASP เรื่องทุกหน้าเข้าถึงตัวแปรและวิธีการ

สคริปต์ทั้งหมดที่เบราว์เซอร์ที่ถูกต้อง (JavaScript, VBScript, JScript, PerlScript ฯลฯ ) สามารถนำมาใช้ใน Global.asa

ไฟล์ Global.asa สามารถมีเพียงต่อไปนี้:

  • เหตุการณ์ของโปรแกรมประยุกต์
  • เหตุการณ์เซสชั่น
  • <object> คำสั่ง
  • งบ TypeLibrary
  • สั่ง #include

หมายเหตุ: ไฟล์ Global.asaจะต้องเก็บไว้ในไดเรกทอรีรากของแอพลิเคชันของ ASP และการประยุกต์ใช้แต่ละคนสามารถมีเพียงไฟล์ Global.asa หนึ่ง


เหตุการณ์ Global.asa

ใน Global.asa คุณสามารถบอกเซสชั่นการใช้งานและวัตถุเมื่อ application / เซสชั่นเริ่มต้นสิ่งที่จะทำสิ่งที่ต้องทำเมื่อตอนท้ายของแอพลิเคชัน / เซสชั่น รหัสเพื่อทํางานนี้จะอยู่ในตัวจัดการเหตุการณ์ ไฟล์ Global.asa สามารถมีสี่ประเภทของกิจกรรม:

Application_OnStart - เหตุการณ์นี้เกิดขึ้นเมื่อผู้ใช้เรียกโปรแกรมประยุกต์ ASP แรกหน้าแรกเหตุการณ์นี้จะเริ่มการทำงานของเว็บเซิร์ฟเวอร์หรือเกิดขึ้นหลังจากที่ไฟล์ Global.asa มีการแก้ไข "Session_OnStart" เหตุการณ์เกิดขึ้นหลังจากเหตุการณ์นี้เกิดขึ้นทันที

Session_OnStart - เหตุการณ์นี้เกิดขึ้นเมื่อใดก็ตามที่ผู้ใช้ใหม่ขอให้เขา (เธอ) ในโปรแกรมประยุกต์ ASP ในหน้าแรก

Session_OnEnd - เหตุการณ์นี้เกิดขึ้นเมื่อใดก็ตามที่ผู้ใช้ session ปลายหากผู้ใช้ไม่ได้ร้องขอหน้าใด ๆ เซสชันของผู้ใช้จะสิ้นสุดภายในเวลาที่กำหนดไว้ (เวลาเริ่มต้นคือ 20 นาที)

Application_OnEnd - เหตุการณ์นี้หลังจากที่ผู้ใช้จะสิ้นสุดลงเซสชั่นสุดท้ายของพวกเขาเกิดขึ้นโดยปกติแล้วมีเหตุการณ์เกิดขึ้นเมื่อเว็บเซิร์ฟเวอร์จะหยุดการทำงาน subroutine นี้จะใช้หลังจากการประยุกต์ใช้ในการหยุดการตั้งค่าล้างเช่นบันทึกลบหรือเขียนข้อมูลไปยังแฟ้มข้อความ

แฟ้ม 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> คำสั่ง

สามารถ <object> แท็กในการสร้างวัตถุกับเซสชั่นหรือขอบเขตการประยุกต์ใช้ในไฟล์ Global.asa โดยใช้

หมายเหตุ: <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 必需被指定。

ตัวอย่าง

ตัวอย่างแรกโดยใช้พารามิเตอร์ ProgID เพื่อสร้างวัตถุขอบเขตเซสชั่นที่เรียกว่า "โฆษณาของฉัน" ต่อไปนี้:

<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>

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

某个 .ASP 文件:

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


งบ TypeLibrary

TypeLibrary (ชนิดห้องสมุด) เป็นภาชนะที่ประกอบไปด้วย COM ที่สอดคล้องกันไฟล์ DLL วัตถุ โดยรวมถึงการเรียกร้องให้ TypeLibrary ในแฟ้ม Global.asa คุณสามารถเข้าถึงค่าคงที่ของวัตถุ COM และโค้ด ASP ยังดีกว่าสามารถรายงานข้อผิดพลาด หากโปรแกรมประยุกต์บนเว็บของคุณอาศัยชนิดข้อมูลวัตถุ COM ประกาศในไลบรารีชนิดคุณสามารถพิมพ์ห้องสมุดในงบ Global.asa

ไวยากรณ์

<!--METADATA TYPE="TypeLib"
file="filename" uuid="id" version="number" lcid="localeid"
-->

参数 描述
file 规定指向类型库的绝对路径。

file 参数或者 uuid 参数,两者缺一不可。

uuid 规定了类型库的唯一的标识符。

file 参数或者 uuid 参数,两者缺一不可。

version 可选。用于选择版本。如果没有找到需要的版本,将使用最接近的版本。
lcid 可选。用于类型库的地区标识符。

ค่าความผิดพลาด

เซิร์ฟเวอร์จะส่งคืนหนึ่งในข้อผิดพลาดต่อไปนี้:

错误代码 描述
ASP 0222 无效的类型库规范
ASP 0223 没有找到类型库
ASP 0224 无法加载类型库
ASP 0225 无法包装类型库

หมายเหตุ: แท็กเมตาใน Global.asa ไฟล์ได้ทุกที่ (ภายในและภายนอก <script> แท็กอาจเป็น) จะปรากฏขึ้นอย่างไรก็ตามเรายังคงแนะนำแท็กเมตาอยู่ที่ด้านบนของแฟ้ม Global.asa


ถูก จำกัด

เกี่ยวกับแฟ้ม Global.asa สามารถอ้างอิงในเนื้อหาที่กำหนดไว้:

  • ไฟล์ Global.asa ว่าคุณไม่สามารถแสดงข้อความ ไฟล์นี้ไม่สามารถแสดงข้อมูล
  • คุณสามารถใช้เซิร์ฟเวอร์และการประยุกต์ใช้วัตถุ Application_OnStart และ Application_OnEnd ซับรูทีน ใน subroutine Session_OnEnd คุณสามารถใช้เซิร์ฟเวอร์แอพลิเคชันและวัตถุเซสชัน ใน subroutine Session_OnStart คุณสามารถใช้วัตถุใดในตัว

วิธีการใช้งานโปรแกรมย่อย

Global.asa นิยมใช้ในการเริ่มต้นตัวแปร

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการตรวจสอบเวลาที่แน่นอนของผู้เข้าชมเว็บไซต์แรกที่มาถึง เวลาที่ถูกเก็บไว้ในวัตถุสมัยที่มีชื่อว่า "เริ่มต้น" ในและความคุ้มค่าของการ "เริ่มต้น" ตัวแปรสามารถใด ๆ 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 subroutine จะเริ่มต้น จากนั้น Application_OnStart เรียก subroutine อีกคนหนึ่งชื่อ "GetCustomers" subroutine "GetCustomers" subroutine เปิดฐานข้อมูลและดึงชุดบันทึกจาก "ลูกค้า" ตาราง บันทึกนี้ถูกกำหนดให้กับอาร์เรย์ของการชุมนุมโดยไม่ต้องสอบถามฐานข้อมูลหน้า 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 ตั้งค่าตัวแปร Application "ผู้เข้าชม" คือ 0
  • เมื่อใดก็ตามที่ผู้เข้าชมใหม่มาเยี่ยมชม Session_OnStart subroutine จะได้รับการ "ผู้เข้าชม" ตัวแปรบวกหนึ่ง
  • เมื่อใดก็ตามที่ Session_OnEnd subroutine จะถูกเรียก subroutine จะลบออกจากตัวแปร "ผู้เข้าชม" 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 ที่แสดงหมายเลขปัจจุบันของผู้เข้าชม:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%> online now!</p>
</body>
</html>