412
Rozdział 9.
Testowanie procedur obsługi zdarzeń
<!doctype html>
<html lang=”pl”>
<head>
<title> -a ĝyjÚ! </title>
<meta charset=”utf-8”>
<script>
window.onload = pageLoadedHandler;
function pageLoadedHandler() {
alert(”-a ĝyjÚ!”);
}
</script>
</head>
<body>
</body>
</html>
Na początku przeglądarka
wczytuje stronę i rozpoczyna
analizę jej kodu HTML oraz
tworzenie DOM.
Kiedy przeglądarka dociera do kodu
JavaScript, zaczyna go wykonywać.
Na razie kod jedynie definiuje funkcję
i przypisuje ją właściwości window.onload.
Pamiętaj, że funkcja ta zostanie wywołana,
kiedy przeglądarka skończy wczytywać
stronę.
Następnie przeglądarka
kontynuuje analizę kodu HTML.
Kiedy przeglądarka zakończy analizę kodu HTML
i przygotowywanie DOM, wywołuje naszą procedurę
obsługi zdarzeń...
...która w naszym przypadku
wyświetli komunikat „Ja żyję!”.
Jazda próbna procedury obsługi zdarzeń
Nie ociągaj się, utwórz plik event.html i dodaj do niego kod, który pozwoli
przetestować procedurę obsługi zdarzeń. Wyświetl stronę w przeglądarce
i sprawdź, czy zobaczysz okno z komunikatem.
WYSIL
SZARE KOMÓRKI
Czy można by użyć procedur obsługi zdarzeń, gdyby nie było funkcji?
jesteś tutaj
413
Programowanie asynchroniczne
Dotąd używaliśmy — jak można by rzec — trochę linowego podejścia do pisania
i wykonywania kodu: otrzymywaliśmy algorytm, taki jak testowanie płynów do
robienia baniek lub generacja piosenki o 99 butelkach piwa, pisaliśmy kod realizujący
ten algorytm krok po kroku, do początku do samego końca.
Czy pamiętasz grę w okręty? Jej kod raczej nie pasuje do takiego liniowego schematu
realizacji — oczywiście napisałeś kod, który inicjalizował model — jednak główna
część programu działała w zupełnie
inny sposób. Za każdym razem gdy chciałeś oddać
strzał, musiałeś wpisać współrzędne w polu formularza i kliknąć przycisk
Ognia!.
Kliknięcie przycisku powodowało następnie całą sekwencję akcji, których efektem
było wykonanie następnego ruchu. W tym przypadku kod
reagował na czynność
wykonaną przez użytkownika.
Organizacja kodu w taki sposób, by reagował na zdarzenia, jest całkowicie innym
sposobem pojmowania działania kodu. Aby pisać kod w taki sposób, trzeba
uwzględnić zdarzenia, jakie mogą być zgłaszane, i zastanowić się, jak nasz kod ma
na nie reagować. Informatycy lubią mawiać, że taki kod jest
asynchroniczny, gdyż
będzie wykonywany później, w momencie gdy zostanie wygenerowane zdarzenie, jeśli
w ogóle to nastąpi. Taki sposób programowania zmienia także nasz punkt widzenia,
gdyż musimy zrezygnować z implementowania algorytmu krok po kroku, a zamiast
tego tworzyć aplikację składającą się z wielu procedur, obsługujących wiele różnego
rodzaju zdarzeń.
Jeśli planujesz,
by kiedyś zostać
prawdziwą
programistką JavaScript, musisz
się nauczyć, jak postępować ze
zdarzeniami.
Get Programowanie w JavaScript Rusz głową! now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.