Plik Global.asa ASP
- Poprzednia strona ASP #include
- Następna strona E-mail ASP
Plik Global.asa jest plikiem opcjonalnym, który może zawierać obiekty, zmienne i metody dostępne z każdego strony w aplikacji ASP. Wszystkie poprawne skrypty przeglądarki mogą być używane w Global.asa.
Plik Global.asa
Plik Global.asa jest plikiem opcjonalnym, który może zawierać obiekty, zmienne i metody dostępne z każdego strony w aplikacji ASP. Wszystkie poprawne skrypty przeglądarki mogą być używane w Global.asa.
Plik Global.asa może zawierać następujące elementy:
- Zdarzenia aplikacji
- Zdarzenia sesji
- Deklaracja <object>
- Deklaracja TypeLibrary
- Instrukcja #include
Komentarz:Plik Global.asa musi być umieszczony w głównym katalogu aplikacji ASP, i każda aplikacja może mieć tylko jeden plik Global.asa.
Zdarzenia w Global.asa
W pliku Global.asa możemy określić, co mają robić obiekty application i session przy uruchamianiu i kończeniu. Kod do wykonania tych zadań umieszczamy w operatorach wydarzeń. Plik Global.asa może zawierać cztery typy wydarzeń:}}
Application_OnStart - To wydarzenie ma miejsce za każdym razem, gdy pierwszy użytkownik wywołuje pierwszą stronę w aplikacji ASP. Wydarzenie to ma miejsce po ponownym uruchomieniu serwera Web lub edycji pliku Global.asa. Wydarzenie "Session_OnStart" ma miejsce natychmiast po tym wydarzeniu.
Session_OnStart - To wydarzenie ma miejsce za każdym razem, gdy nowy użytkownik żąda swojej pierwszej strony w aplikacji ASP.
Session_OnEnd - To wydarzenie ma miejsce za każdym razem, gdy użytkownik kończy sesję. Jeśli w ciągu określonego czasu (domyślny czas wydarzenia to 20 minut) nie jest żądany żaden strona, sesja kończy się.
Application_OnEnd - To wydarzenie ma miejsce po zakończeniu sesji ostatniego użytkownika. Typowe przypadki to, że to wydarzenie ma miejsce po zatrzymaniu serwera Web. Subprogram ten jest używany do czyszczenia ustawień po zakończeniu działania aplikacji, np. usunięcia rekordów lub zapisu informacji do pliku tekstowego.
Plik Global.asa może wyglądać tak:
<script language="vbscript" runat="server"> pod Application_OnStart 'niektóry kod end sub pod Application_OnEnd 'niektóry kod end sub pod Session_OnStart 'niektóry kod end sub pod Session_OnEnd 'niektóry kod end sub </script>
Komentarz:Ponieważ nie można wstawić skryptu za pomocą separatora skryptu ASP (<% i %>) w pliku Global.asa, musimy użyć elementu <script> HTML.
Deklaracja <object>
Możesz utworzyć obiekt z zasięgiem sesji lub aplikacji za pomocą etykiety <object> w pliku Global.asa.
Komentarz:Etiqueta <object> powinna znajdować się poza etykietą <script>.
Gramatyka:
<object runat="server" scope="scope" id="id" {progid="progID"|classid="classID"}> .... </object>
Parametr | Opis |
---|---|
scope | Ustaw zasięg obiektu (zakres działania) (Session lub Application). |
id | Przypisz unikalny identyfikator do obiektu. |
ProgID |
Identyfikator powiązany z ClassID. Format ProgID to: [Vendor.]Component[.Version]. Wymagane jest określenie ProgID lub ClassID. |
ClassID |
Przypisz unikalny identyfikator do obiektu klasy COM. Wymagane jest określenie ProgID lub ClassID. |
instancja
Pierwszy egzemplarz tworzy obiekt o nazwie "MyAd" i używa parametru ProgID w zakresie sesji:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
Drugi egzemplarz tworzy obiekt o nazwie "MyConnection" i używa parametru ClassID:
<object runat="server" scope="application" id="MyConnection" classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21"> </object>
Obiekty deklarowane w tym pliku Global.asa mogą być używane przez dowolny skrypt w aplikacji.
GLOBAL.ASA:
<object runat="server" scope="session" id="MyAd" progid="MSWC.AdRotator"> </object>
Możesz odnosić się do obiektu "MyAd" z dowolnej strony w aplikacji ASP:
Plik .ASP:
<%=MyAd.GetAdvertisement("/banners/adrot.txt")%>
Deklaracja TypeLibrary
TypeLibrary (biblioteka typów) jest kontenerem, który zawiera pliki DLL odpowiadające obiektom COM. Poprzez zawarcie odwołania do TypeLibrary w Global.asa, można uzyskać dostęp do stałych obiektów COM oraz ASP kod może lepiej zgłaszać błędy. Jeśli aplikacja na Twojej stronie zależy od obiektów COM o deklarowanych typach w bibliotece typów, możesz zadeklarować bibliotekę typów w Global.asa.
Gramatyka:
<!--METADATA TYPE="TypeLib" file="filename" uuid="typelibraryuuid" version="versionnumber" lcid="localeid" -->
Parametr | Opis |
---|---|
file | Określa absolutną ścieżkę do biblioteki typów. Parametr file lub uuid, jeden z nich jest obowiązkowy. |
uuid | Określa unikalny identyfikator dla biblioteki typów. Parametr file lub uuid, jeden z nich jest obowiązkowy. |
version | Opcjonalne. Wybór wersji. Jeśli nie znaleziono określonej wersji, użyta zostanie najbliższa wersja. |
lcid | Opcjonalne. Identyfikator regionu dla biblioteki typów. |
Wartość błędu
Serwer zwróci jeden z poniższych komunikatów błędu:
Błąd | Kod | Opis |
---|---|---|
ASP | 0222 | Niepoprawne określenie biblioteki typów |
ASP | 0223 | Biblioteka typów nie znaleziona |
ASP | 0224 | Biblioteka typów nie może być załadowana |
ASP | 0225 | Biblioteka typów nie może być opakowana |
Komentarz:Tag METADATA może znajdować się w dowolnym miejscu w pliku Global.asa (zarówno wewnątrz, jak i na zewnątrz tagu <script>). Jednakże, zalecamy umieszczenie tagu METADATA na początku pliku Global.asa.
Ograniczenia
Ograniczenia dotyczące treści, które można odwoływać się w pliku Global.asa:
Nie można wyświetlić tekstu w pliku Global.asa. Ten plik nie może wyświetlać informacji.
Obiekty Server i Application mogą być używane tylko w subrutynach Application_OnStart i Application_OnEnd. W subrutowi Session_OnEnd można używać obiektów Server, Application i Session. W subrutowi Session_OnStart można używać dowolnych wbudowanych obiektów.
Jak używać subrutyn
Global.asa jest często używany do inicjalizacji zmiennych.
Poniższy przykład pokazuje, jak wykryć dokładny czas pierwszego przybycia odwiedzającego na stronę. Czas jest przechowywany w obiekcie Session o nazwie "started", a wartość zmiennej "started" może być dostępna dla każdej strony ASP w aplikacji:
<script language="vbscript" runat="server"> sub Session_OnStart Session("started")=now() end sub </script>
Global.asa może również być używany do kontroli dostępu do strony.
Poniższy przykład pokazuje, jak przekierować każdego nowego odwiedzającego do innej strony, w tym przykładzie będzie to strona "newpage.asp":
<script language="vbscript" runat="server"> sub Session_OnStart Response.Redirect("newpage.asp") end sub </script>
Możemy również zawierać funkcje w pliku Global.asa.
W poniższym przykładzie, gdy serwer internetowy jest uruchamiany, subrutyna Application_OnStart również jest uruchamiana. Następnie, subrutyna Application_OnStart wywołuje inną subrutynę o nazwie "getcustomers". Subrutyna "getcustomers" otwiera bazę danych i pobiera z tabeli "customers" zestaw rekordów. Ten zestaw rekordów jest przypisany do tablicy, tak że każda strona ASP może uzyskać dostęp do tej tablicy bez konieczności zapytania do bazy danych:
<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>
Instancja Global.asa
W tym przykładzie tworzymy plik Global.asa, który może obliczać bieżącą liczbę odwiedzających.
Application_OnStart ustawia wartość zmiennej Application "visitors" na 0 po uruchomieniu serwera.
Każdy raz, gdy nowy użytkownik odwiedza, subrutyna Session_OnStart dodaje 1 do zmiennej "visitors".
Każdy raz, gdy subrutyna Session_OnEnd jest wywoływana, od zmiennej "visitors" odejmuje się 1.
Plik 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>
Ten ASP plik wyświetla liczbę bieżących użytkowników:
<html> <head> </head> <body> <p>There are <%response.write(Application("visitors"))%> online now!</p> </body> </html>
- Poprzednia strona ASP #include
- Następna strona E-mail ASP