Poradniki ASP

ASP DOM

Samouczek WP

Wprowadzenie do stron internetowych Strony internetowe Brzytwa Układ stron internetowych Foldery stron internetowych Globalne strony internetowe Formularze stron internetowych Obiekty stron internetowych Pliki stron internetowych Bazy danych stron internetowych Pomocnicy stron internetowych Strony internetowe WebGrid Wykresy stron internetowych Adres e-mail stron internetowych Bezpieczeństwo stron internetowych Strony internetowe Opublikuj Przykłady stron internetowych Klasy stron internetowych

Brzytwa ASP.NET

Wprowadzenie do brzytwy Składnia brzytwy Zmienne C# brzytwy Pętle C# brzytwy Razor C# Logika Zmienne VB brzytwy Pętle Razor VB Razor VB Logic

ASP klasyczny

Wprowadzenie do ASP Składnia ASP Zmienne ASP Procedury ASP Warunki korzystania z ASP Zapętlanie ASP Formularze ASP Pliki cookie ASP Sesja ASP Aplikacja ASP ASP #zawiera ASP Global.as ASP AJAX e-mail ASP Przykłady ASP

Odniesienie do ASP

Funkcje ASP VB Słowa kluczowe ASP VB Odpowiedź ASP Zapytanie ASP Aplikacja ASP Sesja ASP Serwer ASP Błąd ASP System plików ASP Strumień tekstowy ASP Dysk ASP Plik ASP Folder ASP Słownik ASP ASP AdRotator Przeglądarka ASP Łączenie treści ASP Rotator treści ASP Szybkie ref. ASP

Samouczek ADO

Wprowadzenie ADO Connect Zestaw rekordów ADO Wyświetlacz ADO Zapytanie ADO ADO Sortuj ADO Dodaj Aktualizacja ADO ADO Usuń Demo ADO Przyspieszenie ADO

Obiekty ADO

ADO Polecenie Połączenie ADO Błąd ADO Pole ADO Parametr ADO Nieruchomość ADO Rekord ADO Zestaw rekordów ADO Strumień ADO Typy danych ADO

ASP Plik Global.asa


Plik Global.asa

Plik Global.asa jest plikiem opcjonalnym, który może zawierać deklaracje obiektów, zmiennych i metod, do których można uzyskać dostęp z każdej strony aplikacji ASP.

Wszystkie poprawne skrypty przeglądarki (JavaScript, VBScript, JScript, PerlScript itp.) mogą być używane w Global.asa.

Plik Global.asa może zawierać tylko następujące elementy:

  • Zdarzenia aplikacyjne
  • Wydarzenia sesyjne
  • <obiekt> deklaracje
  • Deklaracje typu Library
  • dyrektywa #include

Uwaga: 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żesz powiedzieć aplikacji i obiektom sesji, co mają zrobić po uruchomieniu aplikacji/sesji i co zrobić po zakończeniu aplikacji/sesji. Kod do tego jest umieszczony w procedurach obsługi zdarzeń. Plik Global.asa może zawierać cztery typy zdarzeń:

Application_OnStart — występuje, gdy PIERWSZY użytkownik wywołuje pierwszą stronę w aplikacji ASP. To zdarzenie występuje po ponownym uruchomieniu serwera sieci Web lub po edycji pliku Global.asa. Zdarzenie „Session_OnStart” występuje natychmiast po tym zdarzeniu.

Session_OnStart — to zdarzenie występuje KAŻDY NOWY użytkownik żąda swojej pierwszej strony w aplikacji ASP.

Session_OnEnd — to zdarzenie występuje ZA KAŻDYM razem, gdy użytkownik kończy sesję. Sesja użytkownika kończy się, gdy użytkownik nie zażądał strony przez określony czas (domyślnie jest to 20 minut).

Application_OnEnd — to zdarzenie występuje po zakończeniu sesji przez OSTATNIEGO użytkownika. Zwykle to zdarzenie występuje, gdy serwer sieci Web zostaje zatrzymany. Ta procedura służy do czyszczenia ustawień po zatrzymaniu aplikacji, takich jak usuwanie rekordów lub zapisywanie informacji w plikach tekstowych.

Plik Global.asa może wyglądać mniej więcej tak:

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

Uwaga: Ponieważ nie możemy używać ograniczników skryptów ASP (<% i %>) do wstawiania skryptów do pliku Global.asa, umieszczamy podprogramy wewnątrz elementu HTML <script>.



<obiekt> Deklaracje

Możliwe jest tworzenie obiektów o zasięgu sesji lub aplikacji w Global.asa za pomocą znacznika <object>.

Uwaga: Znacznik <object> powinien znajdować się poza znacznikiem <script>!

Składnia

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

Parameter Description
scope Sets the scope of the object (either Session or Application)
id Specifies a unique id for the object
ProgID An id associated with a class id. The format for ProgID is [Vendor.]Component[.Version]

Either ProgID or ClassID must be specified.

ClassID Specifies a unique id for a COM class object.

Either ProgID or ClassID must be specified.

Przykłady

Pierwszy przykład tworzy obiekt o zasięgu sesji o nazwie „MyAd” za pomocą parametru ProgID:

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

Drugi przykład tworzy obiekt o zasięgu 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ć wykorzystywane przez dowolny skrypt 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")%>

Deklaracje typu Library

TypeLibrary to kontener na zawartość pliku DLL odpowiadającego obiektowi COM. Umieszczając wywołanie TypeLibrary w pliku Global.asa, można uzyskać dostęp do stałych obiektu COM, a błędy mogą być lepiej raportowane przez kod ASP. Jeśli Twoja aplikacja sieci Web opiera się na obiektach COM, które mają zadeklarowane typy danych w bibliotekach typów, możesz zadeklarować biblioteki typów w Global.asa.

Składnia

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

Parameter Description
file Specifies an absolute path to a type library.

Either the file parameter or the uuid parameter is required

uuid Specifies a unique identifier for the type library.

Either the file parameter or the uuid parameter is required

version Optional. Used for selecting version. If the requested version is not found, then the most recent version is used
lcid Optional. The locale identifier to be used for the type library

Wartości błędów

Serwer może zwrócić jeden z następujących komunikatów o błędach:

Error Code Description
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

Uwaga: tagi METADATA mogą pojawiać się w dowolnym miejscu pliku Global.asa (zarówno wewnątrz, jak i na zewnątrz tagów <script>). Zaleca się jednak, aby tagi METADATA pojawiały się w górnej części pliku Global.asa.


Ograniczenia

Ograniczenia dotyczące zawartości pliku Global.asa:

  • Nie można wyświetlić tekstu zapisanego w pliku Global.asa. Ten plik nie może wyświetlić informacji
  • W podprogramach Application_OnStart i Application_OnEnd można używać tylko obiektów Server i Application. W podprogramie Session_OnEnd można używać obiektów Server, Application i Session. W podprogramie Session_OnStart możesz użyć dowolnego wbudowanego obiektu

Jak korzystać z podprogramów

Global.asa jest często używany do inicjowania zmiennych. 

Poniższy przykład pokazuje, jak wykryć dokładny czas, kiedy odwiedzający po raz pierwszy pojawia się w witrynie sieci Web. Czas jest przechowywany w zmiennej Session o nazwie „started”, a dostęp do wartości zmiennej „started” można uzyskać z dowolnej strony ASP w aplikacji:

<script language="vbscript" runat="server">
sub Session_OnStart
Session("started")=now()
end sub
</script>

Global.asa może być również używany do kontrolowania dostępu do strony.

Poniższy przykład pokazuje, jak przekierować każdego nowego odwiedzającego na inną stronę, w tym przypadku na stronę o nazwie „newpage.asp”:

<script language="vbscript" runat="server">
sub Session_OnStart
Response.Redirect("newpage.asp")
end sub
</script>

Możesz też dołączyć funkcje do pliku Global.asa.

W poniższym przykładzie podprogram Application_OnStart występuje podczas uruchamiania serwera sieci Web. Następnie podprogram Application_OnStart wywołuje inny podprogram o nazwie „getcustomers”. Podprogram „getcustomers” otwiera bazę danych i pobiera zestaw rekordów z tabeli „customers”. Zestaw rekordów jest przypisany do tablicy, do której można uzyskać dostęp z dowolnej strony ASP bez odpytywania 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 utworzymy plik Global.asa, który zlicza liczbę obecnych odwiedzających.

  • Application_OnStart ustawia zmienną aplikacji „visitors” na 0 podczas uruchamiania serwera
  • Podprogram Session_OnStart dodaje jeden do zmiennej „visitors” za każdym razem, gdy pojawia się nowy gość
  • Podprogram Session_OnEnd odejmuje jeden od „odwiedzających” za każdym razem, gdy ten podprogram jest uruchamiany

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ę aktualnych odwiedzających w pliku ASP:

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