| Head First JavaScript. Edycja Polska. O'Reilly. NOWA Autor: Michael Morrison Data wydania: 05/2009 Stron: 624 * Tytuł oryginału: Head First JavaScript (Head First) * Tłumaczenie: Piotr Rajca * ISBN: 978-83-[zasłonięte]-1548-3 * Format: 200x230 * Numer z katalogu: 4498 Wydawnictwo Helion
ftp://ftp.helion.pl/przyklady/hfjsc.zip
Poznaj język JavaScript w niekonwencjonalny i zadziwiająco skuteczny sposób!
Dziś statyczne witryny WWW giną w ogromnej masie podobnych sobie stron, przy braku zainteresowania współczesnych użytkowników sieci. Aby się wyróżnić, trzeba zaproponować oglądającym coś innego niż tylko ładnie sformatowany tekst i schludną grafikę. Jednym z pomysłów na zwiększenie atrakcyjności witryny WWW jest wprowadzenie na nią elementów interaktywnych. Istnieje wiele rozwiązań służących do tworzenia takich elementów. Jednym z najczęściej wykorzystywanych jest JavaScript. Ten interpretowany po stronie przeglądarki język pozwala między innymi na kontrolowanie niemal wszystkich elementów HTML w oparciu o obiektowy model dokumentu (DOM), obsługę zdarzeń generowanych przez użytkownika i weryfikację poprawności danych wprowadzanych do formularza.
Dzięki książce "Head First JavaScript. Edycja polska" poznasz JavaScript w nietypowy, a przy tym bardzo skuteczny sposób. Ponieważ została ona napisana w oparciu o najnowsze teorie uczenia się, błyskawicznie przyswoisz sobie wiedzę o tym języku. Nauczysz się osadzać kod JavaScript w dokumentach HTML, przetwarzać dane i sterować wykonywaniem skryptu za pomocą konstrukcji warunkowych. Dowiesz się, jak korzystać z obiektowego modelu dokumentu, tworzyć i obsługiwać pliki cookie oraz procedury obsługi zdarzeń. Poznasz także techniki programowania obiektowego i sposoby wykrywania czy usuwania błędów. Przeczytasz również o technologii AJAX, opierającej się na języku JavaScript.
* Podstawowe elementy JavaScript * Praca ze zmiennymi * Interakcja z przeglądarką * Wyrażenia warunkowe i pętle * Organizacja kodu i korzystanie z funkcji * Obiektowy Model Dokumentu * Obiekty w JavaScript * Testowanie skryptów * Wykorzystanie JavaScript w technologii AJAX
Twój czas jest cenny — wykorzystaj go na poznanie JavaScript z pomocą nowoczesnych metod nauki!
Wprowadzenie
* Dla kogo jest ta książka? (20) * Wiemy, co sobie myślisz (21) * Metapoznanie (23) * Oto, co możesz zrobić, aby zmusić swój mózg do posłuszeństwa (25) * Przeczytaj to (26) * Zespół recenzentów (28) * Podziękowania (29)
Rozdział 1. W odpowiedzi na wirtualny świat
* Użytkownicy (WWW) mają swoje potrzeby (32) * To jakby rozmowa ze ścianą - całkowity brak reakcji (33) * A JavaScript odpowiada (34) * Światła, kamera, interakcja! (36) * Użyj znacznika ( ), by dać przeglądarce znać, że piszesz kod JavaScript (41) * Twoja przeglądarka WWW poradzi sobie z kodem HTML, CSS i JavaScript (42) * Najlepszy wirtualny przyjaciel mężczyzny... potrzebuje TWOJEJ pomocy (45) * Zapewnianie interaktywności iGłazowi (46) * Utworzenie strony WWW iGłazu (47) * Test (47) * Zdarzenia JavaScript: udzielamy głosu iGłazowi (48) * Informowanie użytkownika przy wykorzystaniu funkcji (49) * Dodanie powitania (50) * A teraz zadbamy o to, by iGłaz stał się naprawdę interaktywny (52) * Interakcja jest komunikacją DWUstronną (53) * Dodajemy funkcję do pobrania imienia użytkownika (54) * Błyskawiczna powtórka: co się przed chwilą stało? (57) * Testujemy iGłaz w wersji 1.0 (58)
Rozdział 2. Wszystko ma swoje miejsce
* Twoje skrypty mogą przechowywać dane (62) * Skrypty myślą w oparciu o typy danych (63) * Stałe zostają TAKIE SAME, wartości zmiennych mogą się ZMIENIAĆ (68) * Zmienne początkowo nie mają wartości (72) * Inicjalizacja zmiennej przy użyciu znaku = (73) * Stałe są odporne na zmiany (74) * A jak wyglądają nazwy? (78) * Dozwolone i niedozwolone nazwy zmiennych oraz stałych (79) * Nazwy zmiennych często są zapisywane według notacji CamelCase (80) * Planujemy stronę zamówienia dla Donalda (84) * Pierwsze podejście do obliczeń w formularzu zamówienia (86) * Inicjuj swoje dane albo... (89) * NaN NIE jest liczbą (90) * Nie tylko liczby można dodawać (92) * parseInt() oraz parseFloat() - konwersja łańcuchów znaków na liczby (93) * Dlaczego w zamówieniu pojawiają się dodatkowe pączki? (94) * Donald odkrywa "szpiegostwo ciastkarskie" (98) * Użyj metody getElementById(), by pobrać dane z formularza (99) * Weryfikacja danych w formularzu (100) * Staraj się, by interfejs użytkownika był intuicyjny (105)
Rozdział 3. W głąb przeglądarki
* Klienty, serwery i JavaScript (112) * Co przeglądarka może zrobić dla Ciebie? (114) * iGłaz musi reagować bardziej wyraziście (116) * Liczniki czasu kojarzą akcje z upływającym czasem (118) * Przerywanie działania licznika (119) * Tworzenie licznika czasu przy użyciu funkcji setTimeout() (120) * W zbliżeniu - funkcja setTimeout() (121) * Wiele rozmiarów ekranu, wiele skarg (125) * Użyj obiektu document, by określić szerokość okna przeglądarki (126) * Skorzystaj z obiektu document, by odczytać szerokość okna klienta (127) * Określanie wymiarów obrazka iGłazu (128) * Wielkość iGłazu należy dostosować do strony (129) * W momencie zmiany wielkości okna zgłaszane jest zdarzenie onresize (133) * Zdarzenie onresize skaluje obrazek iGłazu (134) * Czy myśmy się już spotkali? Rozpoznawanie użytkownika (136) * Każdy skrypt ma swój cykl życiowy (137) * Ciasteczka mogą istnieć dłużej niż cykl życia skryptu (138) * Ciasteczka mają nazwę i przechowują wartość... poza tym mogą wygasnąć (143) * Twój kod JavaScript może istnieć POZA Twoją stroną WWW (145) * Przywitaj użytkownika ciasteczkiem (146) * Teraz funkcja greetUser bazuje na ciasteczkach (147) * Nie zapomnij o zapisaniu ciasteczka (148) * Ciasteczka mają wpływ na bezpieczeństwo przeglądarek (150) * Świat bez ciasteczek (152) * Porozmawiaj z użytkownikiem, to lepsze niż nic... (155)
Rozdział 4. Jeśli droga się rozwidla, nie wahaj się skręcić
* Szczęśliwy uczestniku, prosimy na scenę! (160) * "Jeśli" to prawda, to coś zrób (162) * Instrukcja if przetwarza warunek, a następnie wykonuje operację (163) * Użyj instrukcji if, by wybrać jedną z dwóch opcji (165) * Instrukcja if pozwala wybierać spośród wielu opcji (166) * Dodawanie klauzuli else do instrukcji if (167) * Przebiegiem zdarzeń sterują zmienne (170) * Brakuje jednak części historii (171) * Składanie operacji w JavaScripcie (172) * Męczy Cię podejmowanie decyzji przy użyciu instrukcji if/else? (178) * Instrukcję if można umieścić wewnątrz innej instrukcji if (179) * Twoje funkcje kontrolują działanie stron (181) * Pseudokod pozwala naszkicować ogólny obraz przygody (182) * Nierówność kreskowego ludzika (186) * != Ech, nie mam ci nic do powiedzenia... (187) * Podejmowanie decyzji z wykorzystaniem operatorów porównania (188) * Komentarze, puste miejsca i dokumentacja (190) * Komentarze w JavaScripcie zaczynają się od znaków // (191) * Zakres i kontekst - gdzie "żyją" dane (193) * Sprawdź, gdzie są rozmieszczone zmienne w naszej przygodzie (194) * Gdzie żyją moje dane? (195) * Jedna z pięciu (198) * Zagnieżdżanie instrukcji if/else może się stać skomplikowane (199) * Instrukcje switch udostępniają wiele opcji (201) * Poznajemy szczegóły instrukcji switch (202) * Testowanie nowej wersji Przygody kreskowego ludzika (207)
Rozdział 5. Ryzykując powtórzeniem
* "X" wskazuje miejsce (212) * Cały czas déja vu - pętle for (213) * Poszukiwanie skarbów z pętlą for (214) * Anatomia pętli for (215) * Mandango - wyszukiwarka miejsc dla prawdziwych macho (216) * Najpierw sprawdzamy dostępność miejsc (217) * Pętle, HTML i dostępność miejsc (218) * Fotele są zmiennymi (219) * Tablice gromadzą wiele danych (220) * Wartości tablicy są zapisywane wraz z kluczami (221) * Od JavaScriptu do HTML-a (225) * Wizualizacja miejsc na stronie Mandango (226) * Test: odnajdywanie pojedynczych wolnych miejsc (231) * Co za dużo, to niezdrowo - pętle nieskończone (232) * Pętle zawsze muszą mieć warunek zakończenia (albo nawet dwa!) (233) * Przerwa w działaniu (234) * Odkrywamy operatory logiczne (240) * Powtórzenia do skutku... dopóki warunek jest spełniony (244) * Analiza pętli while (245) * Zastosowanie odpowiedniej pętli do konkretnego zadania (247) * Modelowanie danych reprezentujących miejsca w kinie (253) * Tablica tablic - tablice dwuwymiarowe (254) * Dwa klucze zapewniają dostęp do tablicy dwuwymiarowej (255) * Dwuwymiarowe Mandango (257) * Cała sala miejsc dla prawdziwych macho (260)
Rozdział 6. Redukuj i używaj wielokrotnie
* Matka wszystkich problemów (264) * Funkcje jako narzędzia do rozwiązywania problemów (266) * Tworzenie funkcji w praktyce (267) * Funkcje, które już poznałeś (268) * Lepsza klimatyzacja dzięki większej ilości danych (271) * Przekazywanie informacji do funkcji (272) * Argumenty funkcji jako dane (273) * Funkcje eliminują powtarzający się kod (274) * Tworzenie funkcji określającej status miejsc (277) * Funkcja setSeat() jeszcze bardziej poprawia kod aplikacji Mandango (279) * Znaczenie informacji zwrotnych (281) * Zwracanie danych z funkcji (282) * Wiele szczęśliwych wartości wynikowych (283) * Odczyt statusu miejsca (287) * Prezentacja statusu miejsca (288) * Możemy połączyć funkcję z obrazkiem (289) * Powielanie kodu nigdy nie jest dobre (290) * Separacja funkcjonalności od zawartości (291) * Funkcje są zwykłymi danymi (292) * Wywołania i odwołania do funkcji (293) * Zdarzenia, funkcje zwrotne i atrybuty HTML (297) * Określanie procedur obsługi zdarzeń przy użyciu odwołań do funkcji (298) * Literały funkcyjne spieszą z odsieczą (299) * Czym jest kojarzenie? (300) * Struktura strony HTML (303)
Rozdział 7. Aby użytkownik powiedział nam wszystko
* Formularz rejestracyjny Banerolotu (309) * Kiedy HTML nie wystarcza (310) * Dostęp do danych formularzy (311) * Weryfikacja danych podąża za ciągiem zdarzeń (313) * Zdarzenia onblur - tracimy ostrość (314) * Możesz używać okienka informacyjnego do wyświetlania komunikatów o błędach (315) * Weryfikacja pól w celu sprawdzenia, czy mamy coś więcej niż "nic" (319) * Weryfikacja bez wkurzających okienek dialogowych (320) * Subtelniejsze metody weryfikacji danych (321) * Wielkość ma znaczenie... (323) * Weryfikacja długości danych (324) * Weryfikacja kodu pocztowego (329) * Weryfikacja daty (334) * Niezwykłe wyrażenia regularne (336) * Wyrażenia regularne definiują poszukiwane wzorce (337) * Metaznaki reprezentują więcej niż jeden znak (339) * Tajniki wyrażeń regularnych - kwantyfikatory (340) * Weryfikacja danych przy użyciu wyrażeń regularnych (344) * Dopasowywanie określonej liczby powtórzeń (347) * Eliminacja trzycyfrowego roku przy użyciu tego... lub tamtego... (349) * Niczego nie zostawiajmy przypadkowi (350) * Czy teraz mnie słyszysz? Weryfikacja numeru telefonu (351) * Masz wiadomość - weryfikacja adresów e-mail (352) * Wyjątek jest regułą (353) * Dopasowywanie opcjonalnych znaków ze zbioru (354) * Tworzenie funkcji weryfikującej adres e-mail (355)
Rozdział 8. Krojenie i przyprawianie HTML-a przy użyciu DOM
* Funkcjonalny, lecz niezgrabny - interfejs użytkownika ma znaczenie (360) * Opisy scen bez okienek dialogowych (361) * Dostęp do elementów HTML (363) * Bliższe spotkanie z wewnętrznym HTML-em (364) * Aby zobaczyć lasy i drzewa - obiektowy model dokumentu (DOM) (369) * Twoja strona jest kolekcją węzłów DOM (370) * Poruszanie się po drzewie DOM przy użyciu właściwości (373) * Modyfikowanie węzła tekstowego przy wykorzystaniu DOM (376) * Przygoda standaryzowana (381) * Projektujemy większe i lepsze opcje (383) * Rozważania nad zastępowaniem węzłów tekstowych (384) * Funkcja zastępująca tekst w węźle (385) * Dynamiczne opcje nawigacyjne to świetna rzecz (386) * Interaktywne opcje decyzyjne są jeszcze lepsze (387) * Kwestia stylu: CSS i DOM (388) * Podmienianie stylów (389) * Klasowe opcje (390) * Test stylizowanych opcji decyzyjnych (391) * Problemy z opcjami - pusty przycisk (392) * Modyfikacja stylów wedle zamówienia (393) * Żadnych niepotrzebnych opcji (395) * Więcej opcji, większa złożoność (396) * Śledzenie drzewa decyzyjnego (398) * Przekształć historię swoich decyzji na kod HTML (399) * Produkcja kodu HTML (400) * Śledzenie przebiegu przygody (403)
Rozdział 9. Obiekty jako Frankendane
* JavaScriptowa impreza (408) * Dane + akcje = obiekt (409) * Obiekt jest właścicielem danych (410) * W odwołaniach do składowych obiektu używamy kropki (411) * Niestandardowe obiekty rozszerzają język JavaScript (415) * Tworzenie własnego niestandardowego obiektu (416) * Co jest w konstruktorze? (417) * Powołujemy do życia obiekty blogu (418) * Potrzeba sortowania (423) * Obiekt daty w JavaScripcie (424) * Wyliczanie czasu (425) * Ponowna analiza zagadnienia dat w blogu (426) * Obiekt w obiekcie (427) * Konwersja obiektów na łańcuchy znaków (430) * Pobieranie konkretnych informacji o dacie (431) * Tablice jak obiekty (434) * Sortowanie tablic wedle własnych potrzeb (435) * Łatwiejsze sortowanie dzięki literałom funkcyjnym (436) * Przeszukiwanie wpisów w blogu (439) * Przeszukiwanie zawartości łańcucha znaków indexOf() (441) * Przeszukiwanie tablicy blogu (442) * Teraz działa także wyszukiwanie! (445) * Obiekt Math jest obiektem organizacyjnym (448) * Generowanie liczb losowych przy użyciu metody Math.random() (450) * Zamiana funkcji na metodę (455) * Przedstawiamy piękny nowy obiekt Blog (456) * Jakie są korzyści użycia obiektów na stronie MagicznaKostka? (457)
Rozdział 10. Zrób to po swojemu, używając własnych obiektów
* Ponowna analiza metod obiektu Blog (462) * Przeciążanie metod (463) * Klasy i instancje (464) * Instancje są tworzone na podstawie klasy (465) * Słowo kluczowe this zapewnia dostęp do właściwości obiektów (466) * Należą do jednej, działają we wszystkich - metody należące do klasy (467) * Korzystaj z prototypu, by operować na poziomie klasy (468) * Klasy, prototypy i MagicznaKostka (469) * Także właściwości klasowe są współdzielone (474) * Tworzenie właściwości klasowych przy użyciu prototypu (475) * Podpisane i dostarczone (477) * Metoda formatująca daty (480) * Rozszerzanie standardowych obiektów (481) * Zmodyfikowany obiekt daty = lepsza strona Reni (482) * Klasa może mieć swoją własną metodę (483) * Analiza funkcji porównującej wpisy (485) * Wywoływanie metody klasowej (486) * Jeden obraz jest wart tysiąca słów w blogu (487) * Dodawanie obrazków do blogu (488) * Dodawanie obrazków do strony MagicznaKostka (490) * Obiektowa strona blogu (492)
Rozdział 11. Dobre skrypty na złej drodze
* Debugowanie w praktyce (496) * Przypadek wadliwego kalkulatora IQ (497) * Wypróbuj kod w różnych przeglądarkach (498) * Proste sposoby usuwania błędów (501) * Dzikie niezdefiniowane zmienne (505) * Przetwarzając wartości IQ (507) * Przypadek błędów w połączeniach z radiem (508) * Otwieranie dochodzenia (509) * Problem weryfikacji błędów składniowych (pluskwa nr 1) (510) * Uwaga na te łańcuchy znaków (511) * Cudzysłowy, apostrofy i konsekwencja (512) * Kiedy apostrof nie jest apostrofem, użyj odwrotnego ukośnika (513) * Nie tylko zmienne mogą być niezdefiniowane (pluskwa nr 2) (514) * Każdy jest zwycięzcą (pluskwa nr 3) (516) * Testowanie przy użyciu okienka dialogowego (517) * Obserwowanie zmiennych przy użyciu okienek dialogowych (518) * Zła logika może być przyczyną błędów (520) * Nikt nie wygrywa! (pluskwa nr 4) (524) * Przytłoczony ilością denerwujących okienek dialogowych (525) * Tworzymy własną konsolę do testowania skryptów (527) * Błędy najgorsze ze wszystkich: błędy czasu wykonywania programu (534) * Bestiariusz JavaScriptu (535) * Komentarze jako chwilowe wyłączniki kodu (538) * Niebezpieczeństwa związane ze zmiennymi-cieniami (540)
Rozdział 12. Szybkie i wrażliwe aplikacje internetowe
* Pożądając dynamicznych danych (546) * MagicznaKostka sterowana danymi (547) * Ajax oznacza komunikację (549) * XML - HTML na każdą okazję (550) * XML + HTML = XHTML (553) * XML i dane blogu Reni (555) * Ajax wzmacnia stronę MagicznaKostka (558) * XMLHttpRequest - JavaScript spieszy z pomocą (560) * GET czy POST? Użycie obiektu XMLHttpRequest (563) * Aby zrozumieć ajaksowe żądania (567) * Interaktywne strony zaczynają się od obiektu żądania (571) * Zawołaj mnie, kiedy skończysz (572) * Obsługa żądania... bezproblemowa (573) * DOM spieszy z pomocą (574) * Teraz strona MagicznaKostka jest w pełni zależna od swoich danych (579) * Niedziałające przyciski (581) * Przyciski potrzebują danych (582) * Usprawnienia oszczędzające czas blogera (585) * Zapisywanie danych blogu (586) * Także PHP ma swoje potrzeby (589) * Przekazywanie danych do skryptu PHP (590) * Do rzeczy - przesyłanie danych wpisu na serwer (593) * Ułatwienie korzystania ze strony blogu (598) * W ramach ułatwienia automatycznie wypełniaj pola formularzy (599) * Wielokrotnie wykonywane zadanie? Może by tak jakaś funkcja pomogła? (600)
Skorowidz (605)
| | |
| | |