Plik Global.asa
Plik Global.asa to opcjonalny plik, który może zawierać deklaracje obiektów, zmiennych i metod, które mogą być udostępniane przez każdą stronę w aplikacji ASP.
Wszystkie ważne skrypty przeglądarek (JavaScript, VBScript, JScript, PerlScript, etc.) Mogą być stosowane w Global.asa.
Plik Global.asa może zawierać wyłącznie:
- zdarzenia aplikacji
- zdarzenia sesji
- <object> Deklaracje
- TypeLibrary deklaracje
- dyrektywa #include
Note: Plik Global.asa musi być przechowywany w katalogu głównym aplikacji ASP, a każda aplikacja może mieć tylko jeden plik Global.asa.
Wydarzenia w Global.asa
W Global.asa można powiedzieć aplikacji i sesja obiektów, co zrobić, gdy aplikacja / Włączenie sesji i co zrobić, gdy kończy się application / sesja. Kod do tego jest umieszczony w obsługi zdarzeń. Plik Global.asa może zawierać cztery rodzaje zdarzeń:
Application_OnStart - Występuje, gdy pierwszy użytkownik dzwoni do pierwszej strony w aplikacji ASP. Zdarzenie to występuje po ponownym uruchomieniu serwera WWW lub po plik Global.asa jest edytowany. "Session_OnStart" zdarzenie natychmiast po tym wydarzeniu.Session_OnStart - To wydarzenie odbywa się za każdym razem nowy użytkownik żąda swoją pierwszą stronę w aplikacji ASP.
Session_OnEnd - To zdarzenie występuje, gdy użytkownik kończy sesję. Użytkownik sesja kończy się po stronie nie został poproszony przez użytkownika na określony czas (by default this is 20 minutes) .
Application_OnEnd - Zdarzenie to występuje po ostatnim użytkownik zakończył sesję. Zazwyczaj jest to zdarzenie, gdy serwer WWW zatrzyma. Procedura ta służy do ustawienia posprzątać po zatrzymaniu aplikacji, takich jak usuwanie rekordów lub zapisu informacji w postaci plików tekstowych.
Plik Global.asa mógłby wyglądać następująco:
<script language="vbscript" runat="server">
sub Application_OnStart
' Note: Ponieważ nie możemy korzystać z ograniczników skrypt ASP (<% and %>) , aby wstawić skrypty w pliku Global.asa, kładziemy podprogramów wewnątrz HTML <script> elementu.
<object> Deklaracje
Możliwe jest tworzenie obiektów z sesji lub zakres aplikacji w Global.asa za pomocą <object> tag.
Note: <object> tag powinien być poza <script> tag!
Składnia
<object runat="server" scope=" Parametr Opis scope Ustawia zakres przedmiotu (either Session or Application) id Określa unikalny identyfikator obiektu ProgID Identyfikator powiązany z identyfikatorem klasy. Format ProgID jest [Sprzedawca]. Komponent [.version] Albo ProgID lub ClassID musi być określona.
ClassID Określa unikatowy identyfikator dla obiektu klasy COM. Albo ProgID lub ClassID musi być określona.
Przykłady
Pierwszy przykład tworzy obiekt zakresu sesji o nazwie "MyAd" za pomocą parametru ProgID:
<object runat="server" scope="session" id="MyAd"
progid="MSWC.AdRotator">
</object> Drugi przykład tworzy obiekt zakresie aplikacji o nazwie "MyConnection" za pomocą parametru CLASSID:
<object runat="server" scope="application" id="MyConnection"
classid="Clsid:8AD3067A-B3FC-11CF-A560-00A0C9081C21">
</object> Obiekty zadeklarowane w pliku Global.asa mogą być używane przez każdego skryptu w aplikacji:
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 Deklaracje
TypeLibrary jest pojemnik do zawartości pliku DLL odpowiadających obiektu COM. Włączając połączenie z TypeLibrary w pliku Global.asa, stałe obiektu COM mogą być dostępne, a błędy mogą zostać lepiej donosi kodu ASP. Jeśli aplikacja internetowa korzysta z obiektów COM, które zostały zadeklarowane typy danych w bibliotekach typu można deklarować bibliotek typu w Global.asa.
Składnia
<!--METADATA TYPE="TypeLib"
file=" Parametr Opis file Określa bezwzględną ścieżkę do biblioteki typów. Albo jest wymagany parametr plik lub parametr UUID
uuid Określa unikatowy identyfikator dla biblioteki typów. Albo jest wymagany parametr plik lub parametr UUID
version Opcjonalny. Używany do wyboru wersję. Jeśli wersja żądanie nie zostanie znaleziony, to najnowsza wersja jest używana lcid Opcjonalny. Identyfikator ustawień regionalnych mają być stosowane do biblioteki typów wartości błędów
Serwer może zwrócić jeden z następujących komunikatów o błędach:
Kod błędu Opis ASP 0222 Nieprawidłowy Rodzaj biblioteki ASP 0223 Nie znaleziono biblioteki typów ASP 0224 Rodzaj biblioteka nie może być załadowany ASP 0225 Rodzaj biblioteka nie może być owinięty
Note: Znaczniki metadanych może pojawić się w dowolnym miejscu w pliku Global.asa (both inside and outside <script> tags) . Jednak zaleca się, aby znaczniki metadanych pojawić w górnej części pliku Global.asa.
ograniczenia
Ograniczenia dotyczące tego, co można umieścić w pliku Global.asa:
- Nie można wyświetlić tekst napisany w pliku Global.asa. Plik ten nie może wyświetlać informacje
- Można korzystać tylko z serwerem a aplikacją obiektów podprogramów Application_OnStart i Application_OnEnd. W podprogramie Session_OnEnd, można użyć serwera, aplikacji i obiekty sesji. W podprogramie Session_OnStart można użyć dowolnego wbudowanego obiektu
Jak korzystać z podprogramów
Global.asa jest często używany do inicjalizacji zmiennych.
Poniższy przykład pokazuje jak wykrywać dokładnie razem, gdy użytkownik pierwszy przybywa na stronie internetowej. Czas jest przechowywany w zmiennej sesji o nazwie "started" , a wartość z "started" zmienna może być dostępne z każdej strony ASP we wniosku:
<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script> Global.asa mogą być również wykorzystywane do kontrolowania dostępu do strony.
Poniższy przykład pokazuje, jak przekierować każdego nowego użytkownika do innej strony, w tym przypadku do strony o nazwie "newpage.asp" :
<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script> I można to funkcje w pliku Global.asa.
W poniższym przykładzie podprogramu Application_OnStart występuje podczas uruchamiania serwera WWW. Następnie podprogram wywołuje inny podprogram Application_OnStart nazwie "getcustomers" . "getcustomers" podprogram otwiera bazę danych i pobiera rekord ustanowiony z "customers" tabeli. W zestawie płyta jest przypisany do tablicy, gdzie można uzyskać z dowolnego strony ASP bez zapytań 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>
Przykład Global.asa
W tym przykładzie stworzymy plik Global.asa, który zlicza liczbę obecnych gości.
- Application_OnStart ustawia zmienną Aplikacja "visitors" na 0, gdy zaczyna serwer
- Session_OnStart podprogram dodaje jeden do zmiennej "visitors" za każdym razem, gdy nowy użytkownik przybywa
- Session_OnEnd podprogram odejmuje jeden z "visitors" za każdym razem ten podprogram jest wyzwalane
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> Aby wyświetlić liczbę obecnych użytkowników w pliku ASP:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>There are <%response.write(Application("visitors"))%>
online now!</p>
</body>
</html>