Wstęp do programowania w HTML
Na razie pozostawimy język znaczników HTML. Wiem jesteście niecierpliwi.
Mało jeszcze w nim umiemy, ale dla odwrócenia
uwagi i relaksu proponuje przeskok na skrypty. Skrypt to mały program
wpisany w stronę HTML, wykonujący pewne z góry określone czynności. W
niniejszym kursie poznamy wstęp do programowania w Java Scripcie i
Visual
Basic Scripcie. Od razu zaznaczam, że wymagam znajomości programowania w
C lub Basicu, co najmniej na poziomie przedszkola, gdyż celem tego kursu
nie jest nauka programowania, a zastosowanie tych języków w
programowaniu HTML.
Basic
Jest to dosyć stary język programowania, używany głównie jako
interpreter tzn. w trakcie wykonywania programu tłumaczona jest
wersja źródłowa (instrukcja po instrukcji) i wykonywana. Mam
wrażenie, że jest to język, którego jest najwięcej wersji.
Był to podstawowy język pierwszych mikrokomputerów i przez pewien
czas PC.
Obecnie na PC najwięcej jest wersji, gdzie Basic tłumaczony jest do
P-Codu (jest to coś pośredniego pomiędzy tekstem wersji źródłowej
a kodem maszyny). Przyspiesza to uruchamianie programu, ale wersja
ostateczna nie jest dość efektywna. Taka też postać kodu daje często
błędy wykonania wynikające z niezbyt drobiazgowego napisania
kodu programu. Zaletą natomiast jest wysoka stabilność ostatecznego
programu, nawet w przypadków błędów.
Generalnie Basic jest w pogardzany, przez profesjonalistów, głównie
z tego względu, że długi czas opierał sie nowościom i swoboda w pisaniu
programów doprowadzała do błędów, których nie mają profesjonalne
narzedzia. Najpopularniejszym obecnie narzędziem do pisania w Basicu
jest Microsoft Visual Basic (obecnie najnowsza jest wersja 6.0).
narzędzie to posiada prawie wszystkie cechy profesjonalne
i w pracy jest niezwykle łatwe i skuteczne. Można w nim
pisac bardzo duże i profesjonalne systemy. Wersję szkolną kupić można
za około 10 zł.
Basic jest także elementem pakietu Microsoft Office użytkownicy
takiej jego wersji (lub Visual Basica) mogą od razu siąść i pisać
skomplikowane skrypty w HTML.
Java
Java natomiast jest językiem bardzo młodym i modnym, jedyną formą jaką
tworzy kompilator jest coś w stylu kodu pośredniego, który wygląda
identycznie dla wszystkich środowisk programistycznych. Stąd kod
wykonany w dowolnym narzędziu i dowolnej maszynie można uruchomić
gdziekolwiek indziej, pod warunkiem istnienia Wirtualnej Maszyny Javy
czyli środowiska programowego wykonującego taki kod. Posiada
go prawie każda przeglądarka HTML. Przeglądarki mają możliwość
wykonywania Javy na dwa sposoby:
- pobrania z sieci (dysku) tak zwanego appletu (plik z
rozszerzeniem .class)
i uruchomienia zawartego w nim programu,
(kodu pośredniego). Uruchomieniu appletu służy znacznik
<applet ... > - omówię go przy okazji. Aby wykonać
applet należy napisac program źródłowy w pliku z rozszerzeniem
.java i dokonać kompilacji, którymś z kompilatorów.
Niektóre są darmowe.
- wykonania instrukcji Javy umieszczonych po prostu w pliku
HTML. Tym będziemy się w tym kursie zajmować.
Bardzo pobieżny opis, ale obrazowy i z przykładami jest CHIPIE (nr
specjalny kwiecień 1997). Na załączonym kompakcie jest kilka narzędzi
do pisania w Javie, a także programy do obróbki grafiki, edytory HTML
i kilka dokumentacji tego języka. W samym numerze jest bardzo też ładny
opis HTML.
Programowanie w HTML
We wszystkich poniższych przykładach będę podawać skrypty zarówno
w Basicu jak i w Javie. Wybór języka pozostawiam do wyboru. Programistom
znającym C polecam Javę, natomiast tym co liznęli Basic polecam
Basic. Zaznaczam jednak wyraźnie - Basic funkcjonuje tylko na
Internet Explorerze i najnowszych wersjach Netscape, Java natomiast
wszędzie. Poza MSDN nie spotkałem najkrótszej nawet informacji jak
programować HTML w Basicu, opisów Javy jest mnóstwo.
Cele umieszczenia skryptu w dokumencie HTML są następujące:
- Wykonanie pewnych akcji podczas ładowania strony. Wiele
serwerów przy ładowaniu stron wysyła HTML rozpoznający
przeglądarkę i w zależności od niej podaje zupełnie
inne pliki. Coś takiego widziałem na serwerze WWW.ONET.PL -
oddzielne katalogi dla IE i Netscape, nie wiem czy tak jest
teraz. Program napisany w skrypcie sam może modyfikować
czy tworzyć stronę w zależności od pełnienia pewnych
warunków.
- Wykonywanie pewnych akcji, które w języku znaczników są
niemożliwe:
- Wyświetlanie ruchomej grafiki, jest dużo efektywniejsze
i efektowniejsze niż umieszczanie tej samej grafiki
w plikach gif lub jpg,
- Ożywanie obrazu i tekstu (np. poprzez zmianę położenia
i wielkości obiektów, bo język znaczników jest statyczny)
- stąd nazwa dla "ożywionych" HTML - DHTML (dynamiczny
HTML),
- Dodawanie dodatkowych elementów, dla których brak
znaczników,
dla przyozdobienia HTML,
- rozumna reakcja na zdarzenia wykonywane przez użytkownika
(np. skontrolowanie danych przed wysłaniem), w języku HTML
tworzone są całe systemy bankowe, sklepy internetowe itp.
Teraz pare przykładów z komentarzami.
- Wykonanie akcji podczas ładowania strony - wykonać to można
na dwa sposoby - wpisać skrypt po prostu w treść dokumentu
HTML lub nie w nie opisany jeszcze przez nas znacznik
<body ...>
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1250">
<title>Test Javy</title>
</head>
<body>
Teraz leci komunikat :
<script>
alert("komunikat")
</script>
A teraz po komunikacie
</body>
</html>
i to samo w Basicu
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1250">
<title>Test Basica</title>
</head>
<body>
Teraz leci komunikat :
<script language="vbscript">
msgbox("komunikat")
</script>
A teraz po komunikacie
</body>
</html>
Teraz krótki opis. Nagłówek w obu plikach standardowy. Potem
rozpoczyna się tekst Teraz leci komunikat : . Teraz
okazuje się, że przeglądarki są niekompatybilne. Internet
Explorer zgodnie z kolejnością najpierw puści komunikat na
monitor, potem dalsza część tekstu. Netscape najpierw skończy
pisanie na monitorze potem puści komunikat.
Co nowego. W tekście HTML mamy znacznik <script
language="vbscript"> lub <script>.
To pierwsze
to oznaczenie, że dalej nastąpi skrypt w basicu, to drugie,
że w języku domyślnym (czyli Java Scripcie). Można też napisać
<script language="javascript">. Pomiędzy znacznikami
<script> program napisany w odpowiednim języku.
Oczywiście Netscape 4.5 tego drugiego jeszcze nie wykona.
Oba natomiast wykonają identycznie skrypt:
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1250">
<title>Test Javy</title>
</head>
<body>
Ten dokument jest wyświetlany w przeglądarce :
<script>
document.write(navigator.appName + " "
+ navigator.appVersion)
</script>
Mało efektowny, ale ilustruje prawidłowo zagadnienie
</body>
</html>
Jest to skrypt napisany w Javie. W czasie ładowania pomiędzy
wierszami tekstu skrypt dopisuje nazwę i wersję przeglądarki.
Skrypt w zależności od daty, godziny, rodzaju przeglądarki
może zmodyfikować tekst. Ten typ HTML stosowany jest także
w plikach ASP (active server pages). Serwer Microsoftu ma
zdolność wysyłając w internet pliki (z rozszerzeniem asp)
wykonywać wstępną ich obróbkę przed wysłaniem w Internet.
Program wygląda tak samo, znacznik ASP <% .. %> jest
trochę inny by odróżnić część do wykonania na serwerze i u
klienta. Celem takiej technologii jest zmniejszenie transmisji
w sieci.
- Drugi przykład to połączenie dwóch technik - uruchomienie
skryptu podczas zdarzenia. Zdarzeniem w tym przypadku jest
ładowanie dokumentu.
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=windows-1250">
<title>Test Javy</title>
</head>
<body onload="alert('start strony')">
To jest zwykła strona
</body>
</html>
Na stronie HTML dowolny skrypt można uruchomić jako reakcję
na dowolne zdarzenie np.: ładowanie strony, wciśnięcie przycisku
ruch myszą, wejście lub wyjście kursorem z pola itp. W tym przypadku
do tego celu wykorzystaliśmy nie opisany jeszcze znacznik
<body>.
Szerzej do skryptów powrócimy później. Zazwyczaj związane są z obiektami
na ekranie, które tworzone są nieopisanymi dotychczas znacznikami.
Krzysztof Grzegorz Stoler
[spis treści]
|