Αρχείο Global.asa ASP
- Προηγούμενη Σελίδα ASPS #include
- Επόμενη Σελίδα Email ASP
Το αρχείο Global.asa είναι ένα προαιρετικό αρχείο που μπορεί να περιέχει αντικείμενα, μεταβλητές και μεθόδους που μπορούν να προσβάλλονται από κάθε σελίδα της ASP εφαρμογής. Όλα τα νόμιμα σεναρίων browser μπορούν να χρησιμοποιηθούν στο Global.asa.
Αρχείο Global.asa
Το αρχείο Global.asa είναι ένα προαιρετικό αρχείο που μπορεί να περιέχει αντικείμενα, μεταβλητές και μεθόδους που μπορούν να προσβάλλονται από κάθε σελίδα της ASP εφαρμογής. Όλα τα νόμιμα σεναρίων browser μπορούν να χρησιμοποιηθούν στο Global.asa.
Το αρχείο Global.asa μπορεί να περιέχει τα εξής περιεχόμενα:
- Γενική Ενέργεια Εφαρμογής
- Γενική Ενέργεια Συνεδρίας
- Ανακάλυψη ετικέτα <object>
- TypeLibrary 声明
- Οδηγία #include
Σημειώσεις:Το αρχείο Global.asa πρέπει να φυλάσσεται στον ρίζα του ASP εφαρμογής και κάθε εφαρμογή μπορεί να έχει μόνο ένα αρχείο Global.asa.
Ενέργεια στο Global.asa
Στο Global.asa, μπορούμε να ενημερώσουμε τι πρέπει να κάνουν τα αντικείμενα application και session κατά την εκκίνηση και ολοκλήρωση. Ο κώδικας που εκτελεί αυτή την εργασία τοποθετείται στον επεξεργαστή συμβάντος. Το αρχείο Global.asa μπορεί να περιέχει τέσσερις τύπους συμβάντων: }}
Application_OnStart - Αυτό το συμβάν συμβαίνει όταν ο πρώτος χρήστης καλεί την πρώτη σελίδα της ASP εφαρμογής. Το συμβάν "Session_OnStart" θα συμβεί αμέσως μετά το συμβάν αυτό. Αυτό το συμβάν συμβαίνει όταν ο διακομιστής web επανεκκινεί ή το αρχείο Global.asa επανεπεξεργάζεται.
Session_OnStart - Αυτό το συμβάν συμβαίνει κάθε φορά που ένας νέος χρήστης ζητά την πρώτη σελίδα του ASP εφαρμογής του.
Session_OnEnd - Αυτό το συμβάν συμβαίνει κάθε φορά που ο χρήστης ολοκληρώνει τη συνεδρία. Αν δεν ζητηθεί σεροβάνε για καθορισμένο χρονικό διάστημα (ο τυπικός χρόνος συμβάντος είναι 20 λεπτά), η συνεδρία θα λήξει.
Application_OnEnd - Αυτό το συμβάν συμβαίνει μετά την ολοκλήρωση της συνεδρίας από τον τελευταίο χρήστη. Η τυπική περίπτωση είναι, το συμβάν αυτό συμβαίνει όταν ο διακομιστής web διακόπτεται. Η συνάρτηση αυτού του υποπρογράμματος χρησιμοποιείται για να καθαρίσει τις ρυθμίσεις μετά την παύση της εφαρμογής, όπως η διαγραφή εγγραφών ή η εγγραφή πληροφοριών σε αρχείο κειμένου.
Το αρχείο Global.asa μπορεί να μοιάζει με αυτό:
<script language="vbscript" runat="server"> sub Application_OnStart 'κάποιος κώδικας end sub sub Application_OnEnd 'κάποιος κώδικας end sub sub Session_OnStart 'κάποιος κώδικας end sub sub Session_OnEnd 'κάποιος κώδικας 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"}> .... </object>
参数 | 描述 |
---|---|
scope | Ορίζεται η περιοχή ενέργειας (περιοχή εφαρμογής) του αντικειμένου (Session ή Application). |
id | Διευκρινίζεται ένα μοναδικό id για το αντικείμενο. |
ProgID |
ID που συνδέεται με το ClassID. Η μορφή του ProgID είναι: [Vendor.]Component[.Version]. ProgID ή ClassID πρέπει να καθοριστεί. |
ClassID |
Διευκρινίζεται ένα μοναδικό id για αντικείμενα COM κλάσης. 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>
您可以从 ASP 应用程序中的任意页面引用此 "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 | Invalid type library specification |
ASP | 0223 | Η βιβλιοθήκη τύπων δεν βρέθηκε |
ASP | 0224 | Η βιβλιοθήκη τύπων δεν μπορεί να φορτωθεί |
ASP | 0225 | Η βιβλιοθήκη τύπων δεν μπορεί να συσκευαστεί |
Σημειώσεις:Η ετικέτα 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 χρησιμοποιείται συχνά για την αρχικοποίηση μεταβλητών.
Το παρακάτω παράδειγμα δείχνει πώς να προσδιοριστεί η ακριβής στιγμή που ο επισκέπτης έφτασε για πρώτη φορά στον ιστότοπο. Το χρόνο αυτό αποθηκεύεται σε ένα αντικείμενο Session με το όνομα "started", και η τιμή της μεταβλητής "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>
Επίδειξη instance Global.asa
Σε αυτό το παράδειγμα, θέλουμε να δημιουργήσουμε ένα αρχείο Global.asa που μπορεί να υπολογίσει τον τρέχοντα αριθμό επισκεπτών.
Application_OnStart ρυθμίζει την τιμή της μεταβλητής Application "visitors" σε 0 όταν ο διακομιστής ξεκινά.
Καθεξής φορά που νέος χρήστης επισκεφθεί, το υποprogramma Session_OnStart θα αυξήσει την τιμή της μεταβλητής "visitors" κατά 1.
Καθεξής φορά που ο υποprogramma Session_OnEnd ενεργοποιείται, αυτό το υποprogramma θα μειώσει την τιμή της μεταβλητής "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"))%> εν ligne τώρα!</p> </body> </html>
- Προηγούμενη Σελίδα ASPS #include
- Επόμενη Σελίδα Email ASP