Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00131 008230 10493973 na godz. na dobę w sumie
JavaScript. Projekty - książka
JavaScript. Projekty - książka
Autor: Liczba stron: 424
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-811-1 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> webmasterstwo >> javascript - programowanie
Porównaj ceny (książka, ebook, audiobook).
Doskonały przewodnik po tajnikach języka JavaScript, przeznaczony dla tych projektantów WWW, którym przestał wystarczać HTML. Bogato ilustrowana praktycznymi przykładami książka jest kompletnym podręcznikiem najpopularniejszego języka skryptowego, którego znajomość pozwala ożywić strony internetowe. Autor nie zatrzymuje się na czysto wizualnych aspektach zastosowania JavaScriptu. Pokazuje także sposoby komunikowania się JavaScriptu z aplikacjami działającymi po stronie serwera, napisanymi w PHP, ASP czy Perlu, a także odczytywanie i przetwarzanie dokumentów XML.

JavaScript -- od podstaw po techniki zaawansowane.

'JavaScript projekty', kompendium JavaScriptu, zawierające także wprowadzenie do wielu pokrewnych, przydatnych technologii, to obowiązkowa pozycja na półce twórcy stron internetowych. Ta książka rozszerzy Twoje horyzonty!

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI JavaScript. Projekty KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Autor: William B. Sanders T³umaczenie: Adam Jarczyk ISBN: 83-7197-811-1 Tytu³ orygina³u: JavaScript Design Format: B5, stron: 420 Doskona³y przewodnik po tajnikach jêzyka JavaScript, przeznaczony dla tych projektantów WWW, którym przesta³ wystarczaæ HTML. Bogato ilustrowana praktycznymi przyk³adami ksi¹¿ka jest kompletnym podrêcznikiem najpopularniejszego jêzyka skryptowego, którego znajomoġæ pozwala o¿ywiæ strony internetowe. Autor nie zatrzymuje siê na czysto wizualnych aspektach zastosowania JavaScriptu. Pokazuje tak¿e sposoby komunikowania siê JavaScriptu z aplikacjami dzia³aj¹cymi po stronie serwera, napisanymi w PHP, ASP czy Perlu, a tak¿e odczytywanie i przetwarzanie dokumentów XML. JavaScript — od podstaw po techniki zaawansowane. • Sk³adnia JavaScriptu • Obs³uga okienek z ostrze¿eniami i komunikatami • Efekty podmiany obrazka (rollover) i animacja z wykorzystaniem warstw • Odczytywanie i wysy³anie ciasteczek (cookies) • Obs³uga ramek i otwieranie nowych okien przegl¹darki • Model dokumentu DOM • Krótkie wprowadzenie do ASP, Perla i PHP — integracja JavaScriptu ze skryptami • Podstawy VBScript • £¹czenie JavaScriptu z apletami Javy • Korzystanie z dokumentów XML dzia³aj¹cymi po stronie serwera „JavaScript projekty”, kompendium JavaScriptu, zawieraj¹ce tak¿e wprowadzenie do wielu pokrewnych, przydatnych technologii, to obowi¹zkowa pozycja na pó³ce twórcy stron internetowych. Ta ksi¹¿ka rozszerzy Twoje horyzonty! Spis treści O Autorze ........................................................................................... 9 Część I Podstawy JavaScriptu ...................................................d.11 Rozdział 1. Podstawowe informacje o języku JavaScript ..................................... 13 JavaScript w stronach WWW ................................................... ........................................14 Jak umieścić JavaScript w stronie HTML................................................... ......................15 Szczególne możliwości JavaScriptu................................................... ...............................16 Język interpretowany................................................... ................................................... ...23 Bajka o dwóch interpreterach................................................... .........................................24 Generowany JavaScript................................................... ..................................................24 Podsumowanie ................................................... ................................................... ............26 Rozdział 2. Wprowadzenie do języka JavaScript.................................................. 27 Jak pisać w języku JavaScript? ................................................... ......................................27 Reguły i konwencje nazewnicze ................................................... ....................................33 Słaba kontrola typów danych ................................................... .........................................34 Podsumowanie ................................................... ................................................... ............35 Rozdział 3. Dane i zmienne ................................................................................. 37 Literały ................................................... ................................................... ........................37 Zmienne................................................... ................................................... .......................48 Dane proste i złożone ................................................... ................................................... ..51 Tablice................................................... ................................................... .........................52 Podsumowanie ................................................... ................................................... ............60 Rozdział 4. Stosowanie operatorów i wyrażeń...................................................... 61 Operatory ogólne i operatory poziomu bitowego ................................................... ..........61 Operatory ogólne w JavaScripcie................................................... ...................................62 Operatory................................................... ................................................... .....................62 Pierwszeństwo................................................... ................................................... .............81 Podsumowanie ................................................... ................................................... ............82 Rozdział 5. Struktury JavaScriptu........................................................................ 83 Instrukcje w strukturach sekwencyjnych ................................................... .......................84 Struktury warunkowe ................................................... ................................................... ..87 Pętle................................................... ................................................... .............................93 Instrukcja with................................................... ................................................... .............97 Instrukcje label i continue oraz pętle zagnieżdżone................................................... .......99 Podsumowanie ................................................... ................................................... ..........101 6 JavaScript. Projekty Rozdział 6. Budowanie i wywoływanie funkcji .................................................... 103 Metody i funkcje ................................................... ................................................... .......103 Tworzenie funkcji ................................................... ................................................... .....105 Uruchamianie funkcji za pomocą obsługi zdarzeń ................................................... ......106 Instrukcja return ................................................... ................................................... ........110 Używanie funkcji jako danych................................................... .....................................111 Właściwości w funkcjach................................................... .............................................112 Metody w funkcjach................................................... ................................................... ..113 Podsumowanie ................................................... ................................................... ..........114 Rozdział 7. Obiekty i hierarchie obiektów .......................................................... 117 Hierarchia obiektów w JavaScripcie ................................................... ............................117 Obiekty zdefiniowane przez użytkownika ................................................... ...................120 Obiekty wbudowane i ich właściwości ................................................... ........................123 Najważniejsze metody obiektów wbudowanych ................................................... .........129 Podsumowanie ................................................... ................................................... ..........135 Część II JavaScript w stronach WWW ........................................137 Rozdział 8. Programowanie obiektowe w języku JavaScript i model obiektów dokumentu (DOM) .............................................. 139 Programowanie obiektowe w języku JavaScript................................................... ..........140 Idea prototypu ................................................... ................................................... ...........141 Model obiektów dokumentu................................................... .........................................149 Podsumowanie ................................................... ................................................... ..........155 Rozdział 9. Ramki i adresowanie ramek w oknie .............................................. 157 Okno jako obiekt złożony ................................................... ............................................157 Skrypty, które piszą skrypty................................................... .........................................161 Podsumowanie ................................................... ................................................... ..........171 Rozdział 10. Funkcje obsługi zdarzeń .................................................................. 173 Obiekty location, anchor i history ................................................... ................................174 Zdarzenia i obsługa zdarzeń w HTML-u i JavaScripcie .................................................182 Podsumowanie ................................................... ................................................... ..........191 Rozdział 11. Formularze...................................................................................... 193 Różnorodne typy elementów formularzy w HTML-u ................................................... .194 Wpisy tekstowe jako łańcuchy................................................... .....................................195 Przekazywanie danych pomiędzy formularzami i zmiennymi .......................................197 Formularz jako tablica................................................... ..................................................199 Typy formularzy................................................... ................................................... ........203 Przyciski i związane z nimi zdarzenia................................................... ..........................213 Podsumowanie ................................................... ................................................... ..........222 Rozdział 12. Dynamiczny HTML........................................................................... 223 Czym jest dynamiczny HTML? ................................................... ...................................223 Kaskadowe arkusze stylów ................................................... ..........................................224 Obramowania ................................................... ................................................... ............233 Zewnętrzne arkusze stylów CSS ................................................... ..................................237 Rola JavaScriptu w dynamicznym HTML-u ................................................... ...............238 Podsumowanie ................................................... ................................................... ..........243 Spis treści 7 Rozdział 13. Zapamiętywanie za pomocą cookies .............................................. 245 Czym są cookies i jak są wykorzystywane?................................................... .................245 Jak zaprząc cookies do pracy ................................................... .......................................246 Dodatkowe atrybuty ................................................... ................................................... ..248 Otrzymywanie i zwracanie informacji ................................................... .........................250 Podsumowanie ................................................... ................................................... ..........252 Część III JavaScript i inne aplikacje i języki.................................253 Rozdział 14. JavaScript i PHP ............................................................................. 255 Język skryptowy PHP ................................................... ..................................................255 Przekazywanie danych z JavaScriptu do PHP ................................................... .............264 Kontrola nad wieloma stronami PHP z JavaScriptu ................................................... ....266 Wstępne przetwarzanie formularzy dla PHP przez JavaScript .......................................270 JavaScript, PHP i MySQL................................................... ............................................275 Podsumowanie ................................................... ................................................... ..........290 Rozdział 15. ASP i JavaScript ............................................................................. 291 Tworzenie stron ASP ................................................... ................................................... 292 Zmienne w języku VBScript ................................................... ........................................293 Operatory i instrukcje warunkowe ................................................... ...............................294 Struktury pętli................................................... ................................................... ............298 Przekazywanie danych z JavaScriptu do ASP ................................................... .............301 Kontrola nad wieloma stronami ASP poprzez JavaScript ..............................................303 Microsoft Access, ASP i JavaScript................................................... .............................307 Tworzenie pliku Access 2000 ................................................... ......................................308 Umieszczenie pliku Access 2000 na serwerze i przygotowanie DSN ............................309 Utworzenie połączenia pomiędzy stroną ASP i plikiem bazy danych............................310 Odczyt bazy danych Access 2000 z ASP ................................................... ......................311 Odczyt i wyświetlanie wielu pól równocześnie ................................................... ...........312 Wstawianie rekordów z HTML-a do bazy Access................................................... .......313 Podsumowanie ................................................... ................................................... ..........315 Rozdział 16. CGI i Perl ....................................................................................... 317 Pisanie skryptów w Perlu ................................................... .............................................317 Krótkie wprowadzenie do Perla ................................................... ...................................320 Operatory w Perlu ................................................... ................................................... .....322 Instrukcje Perla................................................... ................................................... ..........323 Obsługa plików w Perlu ................................................... ...............................................326 Przekazywanie danych z HTML-a do CGI ................................................... ..................332 Podsumowanie ................................................... ................................................... ..........337 Rozdział 17. XML i JavaScript............................................................................. 339 Mistyczna otoczka wokół XML-a................................................... ................................339 Co to jest XML?................................................... ................................................... ........340 Odczytywanie i wyświetlanie danych z XML-a za pomocą JavaScriptu .......................342 Podsumowanie ................................................... ................................................... ..........350 Rozdział 18. Flash ActionScript i JavaScript ........................................................ 351 ActionScript i JavaScript................................................... ..............................................351 Uruchamianie funkcji JavaScriptu z Flasha ................................................... .................352 Przekazywanie zmiennych z Flasha 5 do JavaScriptu ................................................... .354 Podsumowanie ................................................... ................................................... ..........358 8 JavaScript. Projekty Rozdział 19. JavaScript i inne języki.................................................................... 359 JavaScript i aplety Javy ................................................... ................................................359 Elementy Javy ................................................... ................................................... ...........361 JavaScript i ColdFusion ................................................... ...............................................365 JavaScript i ASP.NET ................................................... ..................................................367 Podsumowanie ................................................... ................................................... ..........368 Dodatki...................................................d.....................369 Przykładowy słownik ....................................................................... 371 Skorowidz....................................................................................... 401 Rozdział 8. Programowanie obiektowe w języku JavaScript i model obiektów dokumentu (DOM) W rozdziale:  Programowanie obiektowe w języku JavaScript  Idea prototypu  Model obiektów dokumentu Jak dotąd obiekty były omawiane jedynie pod kątem ich budowania i adresowania róż- nych właściwości i metod. Pod pewnymi względami właściwości zachowują się jak zmienne — możemy przypisywać im wartości, które mogą później być zmieniane. Analogicznie pokazaliśmy, że metody są funkcjami skojarzonymi z obiektami i ich wła- ściwościami. Co jednak ważniejsze, wiele luźnych fragmentów kodu możemy połączyć w obiekt, który zawiera wszystkie informacje udostępniane przez zmienne i czynności właściwe dla funkcji. Jeśli wyobrazimy sobie obiekt jako zbiór nazwanych właściwo- ści mających wartości, które mogą być danymi dowolnego typu, zobaczymy, że są one elementami konstrukcyjnymi dla skryptu. Pamiętając, że funkcje mogą być typem danych, nazywamy je metodami, jeśli są wartością właściwości. Może w tym pomóc myślenie o obiektach jako o zakodowanych modułach, które pomagają w organizo- waniu skryptów. 138 Część II ♦ JavaScript w stronach WWW JavaScript ma obiekty, a więc musimy pomyśleć o programowaniu z ich użyciem. Ponieważ zakładam, że większość Czytelników tej książki ma raczej doświadczenie w projektowaniu witryn, a nie w programowaniu, to fakt, iż programowanie obiekto- we (OOP — object-oriented programming) w JavaScripcie różni się od OOP w C++ lub Javie, nie powinien nikogo rozczarować. Zamiast wdawać się w spory, czy Java- Script jest językiem obiektowym, czy nie, zamierzam traktować JavaScript jak rodzaj języka obiektowego. Podobnie, jak republikanie i demokraci tworzą odmienne partie polityczne, lecz nadal partie, JavaScript jest typem obiektowego języka programowa- nia, mimo że nie przypomina innych języków OOP. W następnym podrozdziale wszyst- kie komentarze będą dotyczyły tego, co sprawia, że JavaScript jest językiem obiekto- wym, i co to oznacza dla osoby piszącej skrypty w sposóbe obiektowy. Programowanie obiektowe w języku JavaScript O obiektach w JavaScripcie możemy myśleć między innymi jak o tablicach asocja- cyjnych (skojarzeniowych). Czytelnik mógł się tego spodziewać z przedstawionych wcześniej opisów tablic i z faktu używania instrukcji HQT/KP do wydobywania infor- macji z obiektów. Poniższy skrypt tworzy obiekt, przypisuje do niego dane, a następ- nie wydobywa w postaci tablicy: objectArray.html JVON JGCF VKVNG 6CDNKECUMQLCTGPKQYCVKVNG UETKRVNCPIWCIG,CXC5ETKRV XCTVTGGPGY1DLGEV  VTGGUKG WľGKY[ľUGPKľYWL,KO VTGGUJCFGNCVGOYPKOLGUVEJđQFPQ VTGGHCNN*QFWLGO[YKGNMKGF[PKG XCTFKURNC[VTGG=UKG? DT  FKURNC[ VTGG=UJCFG? DT  FKURNC[ VTGG=HCNN? FQEWOGPVYTKVG FKURNC[  UETKRV JGCF DQF[DIEQNQTYJGCV DQF[ JVON Jak widać, wszystkie właściwości obiektu VTGG są zasadniczo elementami tablicy VTGG. Jest to tablica skojarzeniowa; możemy uznawać obiekty JavaScriptu za obiekty skoja- rzeniowe. Używając funkcji, możemy tworzyć obiekty z nich złożone. Takie funkcje noszą na- zwę funkcji konstruktorskich. Gdy następnie utworzymy obiekt z funkcji konstruktor- skiej, używając nowego konstruktora, nowy obiekt będzie miał właściwości w funkcji. Rozdział 8. ♦ Programowanie obiektowe w języku JavaScript... 139 Poniższy przykład wykorzystuje funkcję konstruktorską do utworzenia nowego obiektu o nazwie Bloomfield. Wszystkie właściwości tego obiektu dziedziczą właściwości obiektu Mall. constructFuncObj.html JVON JGCF VKVNG /GVQFCMQPUVTWMVQTUMCVKVNG UETKRVNCPIWCIG,CXC5ETKRV (WPMELCMQPUVTWMVQTUMC HWPEVKQP/CNN UV0COGUJQRRTQFWEV ] VJKUUV0COGUV0COG VJKUUJQRUJQR VJKURTQFWEVRTQFWEV _ XCT$NQQOHKGNFPGY/CNN $NQQO[0WVUCPF.KIJVPKPI$QNVU1TICPKE NGEVTKEKV[ XCTFKURNC[$NQQOHKGNFUV0COG DT  FKURNC[ $NQQOHKGNFUJQR DT  FKURNC[ $NQQOHKGNFRTQFWEV FQEWOGPVYTKVG FKURNC[  UETKRV JGCF DQF[DIEQNQTOKPVETGCO DQF[ JVON Jak zobaczymy na ekranie, wszystkie właściwości obiektu /CNN zostały odziedziczone przez obiekt $NQQOHKGNF. Pomocne w zrozumieniu tego może być myślenie o meto- dach jako o właściwościach funkcji, a nie prostych funkcjach dołączonych do obiektu. Dzięki temu lepiej zrozumiemy, że funkcja jest istotnie właściwością. Idea prototypu Większość różnic pomiędzy JavaScriptem a językami takimi jak Java polega na tym, iż programowanie obiektowe w Javie opiera się na innym typie klasy niż w Java- Scripcie. W tradycyjnym programowaniu obiektowym klasa jest zbiorem, natomiast każdy obiekt jest egzemplarzem tej klasy lub zbioru. Jednakże w JavaScripcie pojęcie klasy obraca się dookoła idei prototypu. W przeciwieństwie do pojęcia obiektu jako zbioru, gdzie egzemplarz obiektu jest członkiem klasy, idea prototypu traktuje na- zwany obiekt biorąc pod uwagę wszystkie właściwości, jakie posiadają wszystkie obiekty przynależące do klasy. Rozważmy na przykład klasęe o nazwie Mall. Obiekt /CNN (ang. pasaż handlowy) posiada kilka właściwości przynależnych wszyst- kich pasażom handlowym. Oto ich lista:  nazwa (Bloomfield Mall),  sklepy (mięsny, cukiernia, sklep sportowy itd.),  liczba sklepów (15), 140 Część II ♦ JavaScript w stronach WWW    klienci (liczba klientów lub nazwiska), pracownicy (liczba lub nazwiska), role (kasjer, kierownik, ochrona, złodziej). W JavaScripcie pojęcie klasy w zastosowaniu do /CNN sugeruje, iż /CNN posiada wszyst- kie właściwości typowe dla pasażu handlowego. Wobec tego możemy, zajmując się klasą Mall, stosować poniższe właściwości: /CNNPCOGPCYC /CNNUJQRUMNGR /CNNUJQR0WODGTNKEDCUMNGRÎY /CNNEWUVQOGTMNKGPV /CNNGORNQ[GGRTCEQYPKM /CNNTQNGUTQNG Aby zobaczyć różnice pomiędzy zmienną a obiektem, poniższy skrypt definiuje obiekt /CNN i zmienną /CNN. Zdefiniowana zmienna została oznaczona jako komentarz za po- mocą podwójnego ukośnika (), ponieważ zmienna /CNN nie będzie działać jako zde- finiowany obiekt: objChara.html JVON JGCF VKVNG OKGPPCKQDKGMVVKVNG UETKRVNCPIWCIG,CXC5ETKRV XCT/CNNPGY1DLGEV  /CNNUJQRU5MNGR8KPP[ŏGIQDTQēKCTV[MWđ[RKGTYUGLRQOQE[ XCT/CNN /CNNUJQRU5CNQPWľ[YCP[EJMKLÎYIQNHQY[EJKMNKPKMKCCPCNKV[EPC FQEWOGPVYTKVG /CNNUJQRU  UETKRV JGCF DQF[DIEQNQTOKPVETGCO DQF[ JVON Jeśli usuniemy podwójne ukośniki i zamiast tego oznaczymy w skrypcie jako komen- tarz oryginalny obiekt /CNN, zobaczymy, że skrypt nie zadziała, ponieważ zmienna zdefiniowana w drugim przypadku nie utworzyła obiektu. Zamiast tego została utwo- rzona zmienna, a chociaż zmienne mają pewne właściwości (na przykład długość), to nie można przypisywać im właściwości. Obiekty String i Date Musimy jeszcze omówić dwa ważne obiekty wbudowane — 5VTKPI i CVG. Każdy z nich ma właściwości, metody i parametry, które trzeba poznać. Obiekt CVG z punktu widzenia projektu jest mocno wyspecjalizowany, lecz możemy go użyć na wiele cie- kawych sposobów, a nie tylko do wyświetlania daty i godziny. Dla projektanta waż- niejszy jest obiekt 5VTKPI i sposoby, na jakie może posłużyć do formatowania wy- świetlanych danych. Rozdział 8. ♦ Programowanie obiektowe w języku JavaScript... 141 Sposób użycia obiektu String Obiekt 5VTKPI posiada mnóstwo metod, lecz na razie omówimy tylko najważniejsze wybrane z nich. Czytelnik może zacząć przyglądać się różnym sposobom formatowa- nia łańcuchów i uczyć się, jak wykorzystać wbudowane właściwości do manipulowa- nia wyglądem strony na ekranie. Na przykład, poniższy skrypt zawiera obiekt łańcu- chowy wykorzystujący równocześnie pięć metod: stringMethod.html JVON JGCF VKVNG 1DKGMV[KOGVQF[đCēEWEJQYGVKVNG UETKRVNCPIWCIG,CXC5ETKRV XCTO[9QTFPGY5VTKPI 0KGITGEPKGLGUVOTWICè  O[9QTFO[9QTFUWDUVTKPI  HQPVUKG  KVCNKEU HQPVEQNQ1T TGF DNKPM  FQEWOGPVYTKVG O[9QTF  #VT[DWVDNKPMTWLPQYCđYKúEGLUVQUWPMQYQRT[YQKV[EKJRTQLGMVÎY999PKľ LCMKMQNYKGMKPP[KQUVCđYMQēEWY[GNKOKPQYCP[ QQDKGLTGPKCVGL KT[VWLæEGLOGVQF[RQVTGDPCLGUVUVCTUCRTGINæFCTMKC   UETKRV JGCF DQF[DI QNQTRGCEJRWHH DQF[ JVON Proszę zwrócić uwagę, że po zdefiniowaniu obiektu za pomocą konstruktora 5VTKPI możliwe jest zapisanie poniższej instrukcji z pięcioma metodami dołączonymi do sa- mego obiektu łańcuchowego: O[9QTFO[9QTFUWDUVTKPI  HQPVUKG  KVCNKEU HQPVEQNQT TGF DNKPM  Na końcu skryptu obiekt łańcuchowy O[9QTF posiada właściwości UWDUVTKPI (podłań- cuch), HQPVUKG (rozmiar czcionki), KVCNKEU (pochylenie), HQPVEQNQT (kolor czcionki) — czerwony oraz DNKPM — czcionka migająca. Jak widzimy, używając łańcucha jako obiektu możemy kontrolować jego wygląd na stronie. Proszę nigdy nie używać migających czcionek w prawdziwych projektach! Wywołują one oczopląs — a poza tym działają tylko w Netscape Naviggatorze. Metody łańcuchowe możemy podzielić na trzy kategorie, jeak pokazano w tabeli 8.1. Metody znacznikowe Metody znacznikowe skojarzone z łańcuchami odpowiadają znacznikom języka HTML. Na przykład metoda DQNF jest skojarzona ze znacznikiem D pogrubiającym czcion- kę. Analogicznie HQPVEQNQT i HQPVUKG są skojarzone ze znacznikiem (QPV . Uwa- ga projektanci — proszę uważać z tymi metodami. Z powodu możliwości i elastycz- ności kaskadowych arkuszy stylów (CSS) wiele znaczników, takich jak (QPV , nie jest już zalecanych. Jeśli przyzwyczaimy się zbytnio do używania metod znaczniko- wych w JavaScripcie, możemy pewnego dnia zostać daleko w tyle z przestarzałą 142 Część II ♦ JavaScript w stronach WWW Tabela 8.1. Typy metod łańcuchowych Wyrażenia regularne OCVEJ TGRNCEG UGCTEJ URNKV Znaczniki #PEJQT $KI $NKPM ōV[NMQY00 $QNF (KZGF (QPVEQNQT (QPVUKG +VCNKEU .KPM 5OCNN 5VTKMG 5WD 5WR Czynności EJCT#V EJCT QFG EQPECV KPFGZ1H NCUV+PFGZ1H UNKEG UWDUVTKPI UWDUVT VQ.QYGT CUG VQ7RRGT CUG technologią. Proszę przejrzeć rozdział 12., „Dynamiczny HTML”, i zobaczyć, co mo- żemy osiągnąć, łącząc CSS z JavaScriptem. Przy okazji zobaczymy, ile wbudowa- nych metod możemy dodać do łańcucha. Metody czynnościowe Używam terminu „metody czynnościowe” do oznaczenia metod przekształcających skład łańcucha lub znajdujących informacje o łańcuchach, lecz nie używających wy- rażeń regularnych. Metody te są podstawowymi narzędziami pracy z łańcuchami. Najważniejsze z nich zajmują się identyfikacją podłańcuchówe i znaków.     UWDUVTKPI RQEæVGMMQPKGE — podaje pozycję liczbową w łańcuchu pierwszego i ostatniego znaku podłańcucha, który ma zostać wydzieloeny z łańcucha. EJCT#V P — podaje wartość pozycji liczbowej znaku w łańcuchu. EJCT QFG#V P — podaje wartość pozycji znaku w łańcuchu i zwraca waretość tego znaku (n) w Unicode (ASCII). KPFGZ1H UWDUVT — podaje fragment (podłańcuch) do znalezienia w łańcuchu i zwraca pozycję pierwszego znaku podłańcucha. NCUV+PFGZ1H działa tak samo, lecz zaczyna od końca łańcucha.  VQ7RRGT CUG i VQ.QYGT CUG — przekształca łańcuch na same wielkie lub same małe litery. Poniższy skrypt daje przykład wykorzystania wszystkich powyższych metod, poza indeksowaniem: stringMethod2.html JVON JGCF VKVNG /GVQFCVKVNG Rozdział 8. ♦ Programowanie obiektowe w języku JavaScript... 143 UETKRVNCPIWCIG,CXC5ETKRV XCTSWQVGPGY5VTKPI 1PCY[TCľCđCYU[UVMKGOQľNKYG1GOQELG  XCTFGZSWQVGVQ.QYGT CUG UWDUVTKPI   XCTVGTKV[SWQVGVQ7RRGT CUG EJCT#V   FGZFGZEQPECV VGTKV[  FQEWOGPVYTKVG FGZ  UETKRV JGCF DQF[DI QNQTNCXGPFGTDNWUJ DQF[ JVON Metody wyrażeń regularnych Ostatnim typem metod łańcuchowych są metody używające wyrażeń regularnych. Jak intensywnie będziemy korzystać z tych metod, to już zależy od konkretnego projektu, lecz wyrażenia regularne są doskonałym narzędziem do pracy z łańcuchami. Propo- nuję wrócić do opisu wyrażeń regularnych w rozdziale 3., „Dane i zmienne”, lub przej- rzeć opis CGI i języka Perl w rozdziale 16., „CGI i Perl”, gdzie zostały omówione bar- dziej szczegółowo różne formaty wyrażeń regularnych. Czterema metodami wyrażeń regularnych dla obiektu łańcuechowego są:     OCVEJ TGIGZR — zwraca podciąg opisany wyrażeniem regularnym lub wartość PWNN. TGRNCEG TGIGZRUWDUVKVWVG —zastępuje wyrażenie regularne łańcuchem UWDUVKVWVG. UGCTEJ TGIGZR — znajduje pozycję początkową łańcucha opisanego wyrażeniem regularnym. URNKV TGIGZR — ta metoda działa zarówno na łańcuchach, jak i na wyrażeniach regularnych (JavaScript 1.2). Łańcuch jest dzielony w miejsceu wyrażenia regularnego (możliwe, że w wielu miejscach), człon z wyraeżenia regularnego jest odrzucany, zaś łańcuch jest przekształcany w tablicęe, której elementy oddzielane są położeniem odrzuconego podłańcucha. Poniższy skrypt przedstawia sposób działania wszystkich czterech metod. Proszę zwró- cić uwagę, jak metoda 5VTKPIUGCTEJ GZR została użyta w metodzie 5VTKPIUNKEG w celu znalezienia składnika z wyrażenia regularnego. Wynik działania skryptu przed- stawia rysunek 8.1. srngRegExpMeth.html JVON JGCF UV[NGV[RGVGZVEUU DQF[] HQPVHCOKN[XGTFCPC DCEMITQWPFEQNQTGE _ J] EQNQTFE Część II ♦ JavaScript w stronach WWW 144 Rysunek 8.1. Metody wyrażeń regularnych skojarzone z obiektem łańcuchowym są efektywnym dodatkiem do narzędzi formatujących dostępnych w JavaScripcie DCEMITQWPFEQNQTCH _ UV[NG VKVNG /GVQF[Y[TCGPTGIWNCTP[EJYNCPEWEJCEJVKVNGK UETKRVNCPIWCIG,CXC5ETKRV UVTKPIOCVEJ XCTOCVEJ6JKU CITCLVQLGUEGTC5CO XCTUVTKPIGTOCVEJ6JKUOCVEJ UCOK  UVTKPITGRNCEG XCTTGRNCEG6JKU6GPUMT[RVLGUVQUCFQP[YLú[MW,CXC1 XCTUVTKPIGTTGRNCEG6JKUTGRNCEG ,CXCI*6/.  UVTKPIUGCTEJ XCTUGCTEJ6JKUYYYUCPFNKIJVEQO XCTUVTKPIGTUGCTEJ6JKUUNKEG UGCTEJ6JKUUGCTEJ E1QO  UVTKPIURNKV XCTURNKV6JKU1PCOCFYCRQYCľPGRTQDNGO[ XCTUVTKPIGTURNKV6JKUURNKV FYCRQYCľPGK  XCTFKURNC[J /GVQF[Y[TCľGēTGIWNCTP[EJYQDKGMVCEJ1đCēEWEJQY[EJJ  FKURNC[ OCVEJ6JKU UVCLGUKú UVTKPIGT DT 1 FKURNC[ TGRNCEG6JKU UVCLGUKú UVTKPIGT DT  FKURNC[ UGCTEJ6JKU UVCLGUKúRQOQEæUVTKPIUNKEG 1  UVTKPIGT å DT  FKURNC[ URNKV6JKU UVCLGUKúVCDNKEæ UVTKPIGT=1?  UVTKPIGT=? å DT  XCTUJQY1HHPGY5VTKPI FKURNC[  FQEWOGPVYTKVG UJQY1HHHQPVEQNQT   UETKRV JGCF DQF[ DQF[ JVON Rozdział 8. ♦ Programowanie obiektowe w języku JavaScript... 145 Różne metody wyrażeń regularnych w obiekcie łańcuchowym mogą zaoszczędzić nam nieco czasu na znajdowanie pozycji w łańcuchach. Zamiast szukania podłańcucha lub pozycji za pomocą pętli, warto pomyśleć o zastosowaniu emetod wyrażeń regularnych. Wykorzystanie obiektu Date Obiekt CVG posiada 40 metod i 9 argumentów. Jednakże wiele z tych metod może nie być używanych zbyt często (np. dotyczące czasu Greenwich), zaś większość metod po- biera lub ustawia jedno i to samo. Mimo to Czytelnik powinien zapoznać się z meto- dami i argumentami obiektu CVG. Tabela 8.2 zawiera ich zestawienie. Tabela 8.2. Właściwości obiektu Date Argumenty /KNKUGEQPFU CVGUVTKPI ;GCT /QPVJ C[ *QWTU /KPWVGU 5GEQPFU /U Metody IGV CVG IGV C[ IGV(WNN;GCT IGV*QWTU IGV/KNKUGEQPFU IGV/KPWVGU IGV/QPVJ IGV5GEQPFU IGV6KOG IGV6KOGQPG1HHUGV IGV76 CVG IGV76 C[ IGV76 (WNN;GCT IGV76 *QWTU IGV76 /KNKUGEQPFU Liczba milisekund od 1 stycznia 1970. Określona data i czas w formacie łańcuchowym (czas jest oopcjonalny). Rok w zapisie czterocyfrowym (np. 2002). Miesiąc numerowany od 0 do 11 (styczeń ma nr 0). Dzień miesiąca numerowany od 1 do 31. (Kto wie, dlaczego odni zaczynają się od 1 a wszystko inne od 0?). Godzina dnia od 0 do 23. Liczba minut od 0 do 59. Liczba sekund od 0 do 59. Liczba milisekund od 0 do 999. Większość zwracanych wartości jest definiowanych przez datoę w obiekcie CVG, nawet jeśli nie jest to bieżąca data i czas. Zwraca dzień miesiąca. Zwraca dzień tygodnia. Zwraca bieżący rok z obiektu CVG. Zwraca godziny. Zwraca liczbę milisekund od 01.01.1970 do daty określonej w obiekcie. Zwraca minuty. Zwraca miesiąc w postaci liczby całkowitej. Zwraca sekundy. Zwraca aktualną godzinę w milisekundach. Zwraca różnicę w strefach czasowych pomiędzy czasem lokalnoym i uniwersalnym (UTC). Zwraca dzień miesiąca w UTC. Zwraca dzień tygodnia w UTC. Zwraca bieżący rok w UTC. Zwraca godzinę w UTC. Zwraca liczbę milisekund od 01.01.1970 do bieżącej UTC.o 146 Część II ♦ JavaScript w stronach WWW Tabela 8.2. Właściwości obiektu Date (ciąg dalszy) Metody IGV76 /KPWVGU IGV76 /QPVJ IGV76 5GEQPFU IGV;GCT UGV CVG UGV(WNN;GCT UGV*QWTU UGV/KNKUGEQPFU UGV/KPWVGU UGV/QPVJ UGV5GEQPFU UGV6KOG UGV76 CVG UGV76 (WNN;GCT UGV76 *QWTU UGV76 /KNKUGEQPFU UGV76 /KPWVGU UGV76 /QPVJ UGV76 5GEQPFU UGV;GCT VQ)/65VTKPI VQ.QECNG5VTKPI VQ76 5VTKPI XCNWG1H Zwraca minuty w UTC. Zwraca miesiąc w UTC w postaci liczby całkowitej. Zwraca sekundy w UTC. Zwraca pole roku; metoda nie zalecana (zastąpiona przez oIGV(WNN;GCT ). Ustawia dzień miesiąca. Ustawia rok. Ustawia godzinę. Ustawia milisekundy. Ustawia minuty. Ustawia miesiąc jako liczbę całkowitą. Ustawia sekundy. Ustawia bieżący czas w milisekundach. Ustawia dzień miesiąca w UTC. Ustawia rok w UTC. Ustawia godzinę w UTC. Ustawia pole milisekund w UTC. Ustawia minuty w UTC. Ustawia miesiąc w UTC jako liczbę całkowitą. Ustawia sekundy w UTC. Ustawia rok; metoda nie zalecana (zastąpiona przez UGV(WNN;GCT ). Konwertuje datę na łańcuch, używając UTC lub GMT. Konwertuje datę i czas. Konwertuje na łańcuch, stosując UTC. Konwertuje na milisekundy. Obiekt CVG jest łatwy w użyciu, mimo tak oszałamiającego zbioru opcji. Jednakże w większości przypadków obiekt ten jest stosowany do porównania przeszłej lub obecnej daty z aktualną albo po prostu do wyświetlania daty na ekranie. Za pomocą zegara UTC można tworzyć ciekawe zegary ogólnoświatowe i inne interesujące zda- rzenia (events) związane z upływem czasu, więc nie powinniśmy zapominać o metodach dla CVG podczas umieszczania daty i czasu na stronach WWW. Poniższy skrypt przed- stawia przykład, jak obiekt CVG może posłużyć do przypominania o Walentynkach: date.html JVON JGCF UETKRVNCPIWCIG,CXC5ETKRV XCT0QY CVGPGY CVG  XCT CVG0QY0QY CVGIGV CVG  XCT/QPVJ0QY0QY CVGIGV/QPVJ  Rozdział 8. ♦ Programowanie obiektowe w języku JavaScript... 147 #D[PCNGļè9CNGPV[PMKRQVTGDP[LGUVOKGUKæEKFKGēK /KGUKæEGCE[PCLæUKúQFYKúENWV[OCPWOGT PKNKEKQPGUæ QF+PKGCRQOPKLQRTCYFKYGLMCTVEGYCNGPV[PMQYGL KH CVG0QY/QPVJ0QY ] CNGTV  KUKCL9CNGPV[PMK _GNUG] CNGTV  CEGMCLFQNWVGIQPKGRQRTCYP[TQOCPV[MW 1 _ UETKRV JGCF DQF[DIEQNQTRKPM DQF[ JVON Po co nam programowanie obiektowe? To wprowadzenie do programowania obiektowego ma zachęcić do myślenia o ele- mentach JavaScriptu jako obiektach, ich właściwościach i metodach. W większości zastosowań skrypty w JavaScripcie są krótkie; wprawdzie dobra organizacja progra- mowania jest ważna nawet w krótkich skryptach, lecz programowanie obiektowe nie jest w nich niezbędne. Gdy jednak zaczniemy pracować w większych zespołach nad projektami WWW i skrypty zaczną zwiększać objętość, programowanie obiektowe zacznie być coraz ważniejsze. Ponieważ zachęca ono do tworzenia modułowych jed- nostek programu, jednostki te możemy udostępniać innym pracownikom zespołu i wy- korzystywać ponownie, co oznacza, że nie będziemy musieli wyważać otwartych drzwi za każdym razem, gdy siądziemy do pracy nad skryeptem. Dla projektanta witryn WWW idea modułowych elementów projektu, zdatnych do ponownego wykorzystania, jest bardziej oczywista i intuicyjna. Programowanie obiek- towe jest podobne. Jeśli potrafimy napisać złożony fragment kodu w postaci modułu, wówczas następnym razem, gdy taki sam kod będzie potrzebny, będziemy mogli albo nieco zmodyfikować kod (np. zmienić wartości argumentów), albo użyć tego samego modułu w innym miejscu. Dzięki temu czas poświęcony na napisanie kodu zwróci się. Model obiektów dokumentu W modelu obiektów dokumentu (DOM — Document Object Model) JavaScriptu pod- stawowym dokumentem jest strona HTML-a. Jak już powiedzieliśmy, obiekt YKPFQY, który zawiera ramki, jest na szczycie hierarchii przeglądarki WWW. Jednakże obiekt QEWOGPV zawiera właściwości, z których informacje są wykorzystywane przez Java- Script. Aby odrzeć DOM z tajemniczości, pomyślmy o nim jak o obiekcie QEWOGPV razem z wszystkimi właściwościami, w tym z metodami. Instrukcje, takie jak FQEW OGPVYTKVG , składają się z obiektu (FQEWOGPV) i właściwości lub metody (YTKVG ), które są częścią modelu. Upraszczając nieco do przesady, możemy powiedzieć, że mo- del obiektów dokumentu JavaScript jest sumą wszystkich właściwości i metod obiektu QEWOGPV, łącznie z tablicami automatycznie generowanymi na stronie HTML, oraz sposobów dostępu do tych obiektów w JavaScripcie. 148 Część II ♦ JavaScript w stronach WWW Właściwości obiektu Document Patrząc na właściwości obiektu QEWOGPV, możemy odczuć coś w rodzaju déjà vu z pod- rozdziału poświęconego obiektowi 5VTKPI z wcześniejszej części tego rozdziału. Zo- baczymy pewne podobieństwa, lecz w większości przypadków właściwości (z pomi- nięciem metod) składające się na DOM są unikatowe dla obiektu QEWOGPV. Tabela 8.3 przedstawia właściwości tego obiektu. Tabela 8.3. Właściwości obiektu Document Nazwa właściwości Skojarzona właściwość CNKPM QNQT CPEJQTU=VCDNKEC? CRRNGVU=VCDNKEC? DI QNQT EQQMKG FQOCKP GODGFU=VCDNKEC? (działa również RNWIKPU=VCDNKEC?) HI QNQT HQTOU=VCDNKEC? KOCIGU=VCDNKEC? NCUV/QFKHKGF NKPM QNQT NKPMU=VCDNKEC? NQECVKQP TGHGTGT VKVNG 74. XNKPM QNQT Aktywny kolor wybranego łącza. Każde zaczepienie na stronie HTML jest elementem tablicoy. Każdy aplet na stronie HTML jest elementem tablicy. Kolor tła dokumentu. Pliki tekstowe, które JavaScript może zapisywać i odczytywaćo. Właściwość zabezpieczeń, która może być wykorzystana przezo dwa lub więcej serwerów WWW, aby zmniejszyć ograniczenia na interakcje pomiędzy stronami WWW. Każdy obiekt osadzony jest elementem tablicy GODGFU=?. Przykładami obiektów osadzonych są rozszerzenia plug-in i pliki .swf (patrz rozdział 18., „Flash ActionScript i JavaScript”, w którym omówiono osadzone pliki Flash w JavaScripcie). Kolor tekstu. Każdy formularz na stronie HTML jest elementem tablicy, oa każdy obiekt w formularzu jest elementem elementu HQTO (formularz). Rozdział 11., „Formularze”, szczegółowo omawia formularze w JavaScripcie. Każdy obraz na stronie HTML jest elementem tablicy KOCIGU=? (tablica ta będzie omówiona szczegółowo w dalszej części rozdziału). Data ostatniej modyfikacji w formacie łańcuchowym. Początkowy kolor łącza przed odwiedzeniem strony (domyślnoie niebieski). Każde łącze jest elementem tablicy, gdy pojawia się w dokumencie. Właściwość URL; obecnie podawana jako 74. (patrz pozycja 74. w dalszej części tabeli). Poprzednia strona, która zawiera łącze do bieżącej. Tytuł dokumentu. Nowa wersja właściwości lokalizacji podająca URL załadowanej strony. Kolor odwiedzonego łącza. Poniższy skrypt przedstawia działanie niektórych z właściwości dokumentu. Obiekt HQTO jest tablicą, zaś funkcja JavaScriptu adresuje jedyny obiekt tekstowy jako ele- ment tablicy formularzy. Rozdział 8. ♦ Programowanie obiektowe w języku JavaScript... 149 bgcolor.html JVON JGCF UETKRVNCPIWCIG,CXC5ETKRV HWPEVKQPOGUUCIG JWG ] FQEWOGPVHQTOU=?GNGOGPVU=?XCNWGJWG _ 0GVUECRG PCLY[TCļPKGLCE[PCNKE[èGNGOGPV[QFCOKCUVQFGTC9GHGMEKG YU[UVMKGQFYQđCPKCFQFQEWOGPVHQTOU=?GNGOGPVU=?RQYQKFWLæCCFTGUQYCPKG RT[EKUMW KYPG UETKRV VKVNG [PCOKEPGOKCP[MQNQTWVKVNG JGCF DQF[ *  WľCEEKQPMCJ HQTO KPRWVV[RGDWVVQPXCNWG GTYQP[QP NKEMFQEWOGPVKDI QNQT TGF  åQP/QWUG QYPOGUUCIG TGF  KPRWVV[RGDWVVQPXCNWG KGNQP[QP NKEMFQEWOGPVDKI QNQT ITGGP  åQP/QWUG1XGTOGUUCIG ITGGP  KPRWVV[RGDWVVQPXCNWG0KGDKGUMKQP NKEMFQEWOGPKVDI QNQT DNWG  åQP/QWUG/QXGOGUUCIG DNWG  DT KPRWVV[RGDWVVQPXCNWGĽÎđVCEEKQPMCQP NKEMFQEWOGPVHI QNQT [GNNQY  DT KPRWVV[RGDWVVQPXCNWG GINCUVCEEKQPMCQP NKEMFQEWOGPVHI QNQT HKTGDTKEM  R KPRWVV[RGVGZV HQTO DQF[ JVON Innymi ważnymi właściwościami obiektu QEWOGPV są obiekty CTTC[ (tablica), HQTO (formularz) i KOCIG (obraz). Formularze będą omówione szczegółowo w rozdziale 11., zaś tablice były opisane w rozdziale 3. Ważnym obiektem tablicy dokumentu, który warto tu przeanalizować dokładniej, jest właściwość KOCIG (obraz) jako obiekt. Obiekty obrazów Obiekt KOCIG jest jednym z najbardziej interesujących w HTML-u i JavaScripcie. Gdy umieszczamy kolejno obrazy na stronie HTML, korzystając ze znacznika KOI , umiesz- czamy obrazy w tablicy. Nie deklarujemy tablicy, lecz tworzymy ją przez umieszcza- nie obrazów na ekranie. Tablica ta budowana jest nastęepująco: FQEWOGPVKOCIGU=? FQEWOGPVKOCIGU=? FQEWOGPVKOCIGU=? Na stronie HTML te same obrazy wyglądałyby tak: KOIUTEŒITCHKMC#IKHŒ KOIUTEŒITCHKMC$IKHŒ KOIUTEŒHQVQITCHKC#IKHŒ 150 Część II ♦ JavaScript w stronach WWW Jedną z właściwości obiektu KOCIG, jakie możemy zmieniać dynamicznie w JavaScrip- cie, jest wartość UTE. Następny skrypt wykorzystuje obrazy GIF o rozmiarze jednego piksela przeskalowane do pionowych pasków. Aby utworzyć jednopikselowy GIF, wy- starczy otworzyć program graficzny używany do obróbki GIF-ów (np. Photoshop lub Fireworks) i zdefiniować rozmiar obszaru roboczego 1×1 piksel, a następnie powięk- szyć lupą do rozmiarów pozwalających na pracę z obrazem. Teraz proszę nadać ob- szarowi roboczemu kolor o jednej z poniższych wartoście szesnastkowych: CEH CDEC EGE E GCD FGDG HHGD Proszę zapisać każdy jednopikselowy GIF pod nazwą od c1.gif do c7.gif. Poniższy skrypt mówi, gdzie każdy rysunek jest umieszczony i pokazuje, że JavaScript po- zwala adresować tablicę obrazów przez adresy w tablicy od 0 do 6. Skrypt adresuje obraz jako część obiektu QEWOGPV w sposób następujący: FQEWOGPVKOCIGU=?UTEPCYC1DTCWUTE PCYC1DTCWUTE jest częścią obiektu KOCIG utworzonego w JavaScripcie. Przy two- rzeniu obiektu URL (lub nazwa pliku) obrazu źródłowego jeest następujący: PCYC1DTCWUTEŒPCYC4[UWPMWIKHŒ Ponieważ JavaScript potrafi jedynie zmieniać dynamicznie wartość UTE w FQEWOGPV KOCIGU=P?UTE, nowa wartość musi być zdefiniowana jako UTE, a nie jako sama nazwa obrazu lub URL. images.html JVON JGCF VKVNG 6CDNKECQDTCÎYVKVNG UETKRVNCPIWCIG,CXC5ETKRV HWPEVKQPEJCPIG+V ] XCTEPGY+OCIG  XCTPFQEWOGPVHQTOU=?JWGXCNWG PRCTUG+PV P  EUTEEIKH FQEWOGPVKOCIGU=P?UTEEUTE _ 0KGYRKU[YCèYCTVQħEKYKúMU[EJPKľ UETKRV JGCF DQF[ VCDNGDQTFGTEQNUYKFVJJGKIJVDIEQNQTEEEEEE VT VFCNKIPEGPVGTXCNKIPEGPVGT KOIPCOGEUTEEIKHDQTFGTJGKIJV åYKFVJ VF VFCNKIPEGPVGTXCNKIPEGPVGT KOIPCOGEUTEEIKHDQTFGTJGKIJV åYKFVJ VF VFCNKIPEGPVGTXCNKIPEGPVGT KOIPCOGEUTEEIKHDQTFGTJGKIJV åYKFVJ VF VFCNKIPEGPVGTXCNKIPEGPVGT KOIPCOGEUTEEIKHDQTFGTJGKIJV åYKFVJ VF VFCNKIPEGPVGTXCNKIPEGPVGT KOIPCOGEUTEEIKHDQTFGTJGKIJV åYKFVJ VF Rozdział 8. ♦ Programowanie obiektowe w języku JavaScript... 151 VFCNKIPEGPVGTXCNKIPEGPVGT KOIPCOGEUTEEIKHDQTFGTJGKIJV åYKFVJ VF VFCNKIPEGPVGTXCNKIPEGPVGT KOIPCOGEUTEEIKHDQTFGTJGKIJV åYKFVJ VF VT VCDNG EGPVGT HQTO KPRWVV[RGVGZVPCOGJWGUKG R KPRWVV[RGDWVVQPXCNWG-NKMPKLCD[OKGPKèMQNQTQDTCWQP NKEMEJCPIG+V  HQTO EGPVGT DQF[ JVON Rysunek 8.2 przedstawia słupki o różnych kolorach, tak jak będą wyglądać na ekra- nie, oraz pole do wpisywania wartości elementu tablicey obrazów. Rysunek 8.2. Strona HTML zawierająca tablicę obrazów — JavaScript może adresować tablicę i zmieniać wartości src Wprawdzie inne właściwości obiektu QEWOGPV, jak np. tablice NKPMU=? i CPEJQTU=?, również mogą być adresowane, lecz dla projektanta najważniejsza jest właściwość KOCIGU=?. Wstępne ładowanie obrazów Gdy projektujemy stronę, w której jeden obraz jest zastępowany innym, zamiana obra- zów musi być natychmiastowa, a od użytkownika nie możemy wymagać cierpliwego oczekiwania na załadowanie nowego obrazu. Na szczęście w JavaScripcie wstępne ładowanie obrazów (do pamięci podręcznej) jest proste. Najpierw definiowany jest nowy obiekt KOCIG, a następnie definiowane jest źródło nowego obiektu, jaek pokazano poniżej: 152 Część II ♦ JavaScript w stronach WWW XCTEKGMCY[1DTCGMPGY+OCIG  EKGMCY[1DTCGMUTEŒPQYC(QVMCLRIŒ I to już wszystko. Obraz znajduje się teraz w pamięci podręcznej przeglądarki — zo- stał wstępnie załadowany. Pamiętając, że obiekty obrazów mogą być traktowane jak tablica, możemy umieścić wstępnie załadowany obiekt w zdefiniowanym w HTML-u miejscu na obraz. Na przykład, jeśli mamy następujący wieersz w HTML-u: KOIUTEŒHKTUV2KZLRIŒPCOGŒHKTUV7RŒ wówczas możemy zastąpić go zbuforowanym obrazem za pomocą poniższego wiersza: FQEWOGPVKOCIGU=?UTEEKGMCY[1DTCGMUTEKOCIGU=?LGU1VRKGTYU[OQDTCGO lub: FQEWOGPVHKTUV7RUTEEKGMCY[1DTCGMUTE Nie istnieje ograniczenie na liczbę obrazów, które możemy załadować do pamięci podręcznej, lecz proszę pamiętać, że pobieranie większej liczby obrazów trwa dłużej. Ponadto podczas procesu ładowania wstępnego możemy zawrzeć również wysokość i szerokość obrazów. Aby dokonać płynnego zastąpienia, obiekty oryginalny i zastę- pujący powinny mieć te same rozmiary. Na przykład, w poniższy sposób można do- brze dopasować obraz buforowany przez JavaScript z oberazem z HTML-a: KOIUTEŒHKTUV#TVŒJGKIJVYKFVJPCOGŒRKECUUQŒ XCTGZR#TVPGY+OCIG  Wstępnie załadowany obraz będzie miał takie same wymiary jak obraz załadowany przez HTML. Związek z DOM W stronie HTML struktura HTML-a zawiera elementy i atrybuty. JavaScript traktuje elementy, np. obrazy i formularze, jak obiekty, a atrybuty elementów jak właściwości. Na przykład, tabela 8.4 przedstawia atrybuty znacznika KOI w HTML-u: Tabela 8.4. Atrybuty elementu img w HTML-u UTE CNKIP DQTFGT WUGOCR CNV JGKIJV JURCEG KUOCR NQPIFGUE YKFVJ XURCEG W JavaScripcie element +/) jest traktowany jak obiekt KOCIGU=?, a wszystkie atry- buty elementu +/) jak właściwości obiektu KOCIGU=?. JavaScript potrafi odczytywać wszystkie właściwości obrazu, lecz może zmienić jedynie ewłaściwość UTE. Podobnie jak wszystkie pozostałe elementy HTML-a i ich atrybuty pojawiające się na stronie (w dokumencie), stanowią one element składowy modelu obiektów dokumentu (DOM). Stosunek JavaScriptu do obiektów dokumentu jest takie jak elementów HTML-a do właściwości adresowanego obiektu. Gdy więc struktura strony wynika z elemen- tów i atrybutów HTML-a, zachowanie strony bierze się ze zdolności JavaScriptu do dynamicznych zmian określonych atrybutów (właściwości) eleementów (obiektów). Rozdział 8. ♦ Programowanie obiektowe w języku JavaScript... 153 Podsumowanie Obiekty są podstawą JavaScriptu, a zrozumienie modelu obiektów dokumentu w Java- Scripcie w stosunku do HTML-a jest niezbędne do efektywnego wykorzystania roz- licznych obiektów, jakie możemy znaleźć na stronie WWW. Programowanie obiek- towe miało w założeniach pomóc w opanowaniu ogromnych wieloprogramowych projektów, w których trzeba było koordynować tysiące wierszy kodu. W typowych zadaniach, z jakimi spotyka się większość projektantów, potrzeba programowania obiektowego nie polega na konieczności zapanowania nad gigantycznym projektem, ponieważ większość JavaScriptu zajmuje się prostymi zadaniami wykonywanymi na pojedynczych stronach. Jednakże nawet drobne postępy w kierunku programowania obiektowego pomogą lepiej zrozumieć zjawiska zachodzące na naszej stronie WWW i łatwiej osiągać założone efekty. Projektant stron WWW powinien być w stanie wyobrazić sobie wyniki działania dy- namicznej strony WWW, a następnie ożywić stronę za pomocą JavaScriptu. Poznając założenia programowania obiektowego oraz pojęcia obiektów, właściwości i metod w JavaScripcie, zrobiliśmy olbrzymi krok w tym kierunku. Proszę nie uważać progra- mowania obiektowego za ciężar, lecz raczej za okazję do lepszego zrozumienia pro- duktów własnej wyobraźni. Analogicznie, proszę nie traktować programowania obiek- towego jako ograniczeń własnej kreatywności. Czasami Czytelnik nie będzie w stanie znaleźć rozwiązania problemu z użyciem programowania obiektowego, lecz do roz- wiązania możemy dojść, wykorzystując zmienne i instrukcje nie zawierające obiek- tów łączonych z właściwościami i metodami. Za to nie grozi kara więzienia! Robiąc drobne kroczki w stronę programowania obiektowego, w końcu nauczymy się wyko- rzystywać w pełni jego możliwości.
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

JavaScript. Projekty
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: