JavaScript : aplikacje WWW / Alex MacCaw. – Gliwice, cop. 2012
Transkrypt
JavaScript : aplikacje WWW / Alex MacCaw. – Gliwice, cop. 2012
JavaScript : aplikacje WWW / Alex MacCaw. – Gliwice, cop. 2012 Spis treści Przedmowa 9 1. MVC i klasy Początki Nadawanie struktury Czym jest MVC? Model Widok Kontroler Ku modularyzacji, tworzenie klas Dodawanie funkcji do klas Dodawanie metod do własnej biblioteki klas Dziedziczenie klas przy uŜyciu prototypu Dodawanie dziedziczenia do biblioteki klas Wywoływanie funkcji Kontrola zasięgu we własnej bibliotece klas Dodawanie funkcji prywatnych Biblioteki klas 17 17 18 19 19 20 21 22 23 24 25 26 27 29 31 32 2. Zdarzenia i ich nasłuchiwanie Nasłuchiwanie zdarzeń Kolejność zdarzeń Anulowanie zdarzeń Obiekt zdarzenia Event Biblioteki zdarzeń Zmiana kontekstu Delegowanie zdarzeń Własne zdarzenia Własne zdarzenia i moduły rozszerzające jQuery Zdarzenia inne niŜ zdarzenia DOM 35 35 36 37 37 39 40 40 41 41 43 3. Modele i dane MVC i przestrzenie nazw Tworzenie ORM Dziedziczenie przez prototypy Dodawanie właściwości ORM Utrzymywanie rekordów Dodawanie obsługi identyfikatorów Adresowanie odwołań 47 47 48 49 50 51 52 53 Ładowanie danych Wplatanie danych Ładowanie danych przy uŜyciu Ajax JSONP Bezpieczeństwo Ŝądań między domenami Wypełnienie ORM danymi Przechowywanie danych lokalnie Dodanie mechanizmu przechowywania danych lokalnie do ORM Przesyłanie nowych rekordów na serwer 54 55 55 59 59 60 60 61 63 4. Kontrolery i stany Wzorzec modułu Import zmiennych globalnych Eksport zmiennych globalnych Dodawanie kontekstu Wydzielanie kodu do oddzielnej biblioteki Ładowanie kontrolerów po załadowaniu dokumentu Dostęp do widoków Delegowanie zdarzeń Maszyny stanów Routing Korzystanie z hash value adresu URL Wykrywanie zmian hash value Ajax Crawling Wykorzystanie API History HTML5 65 66 66 66 67 68 69 70 72 74 76 76 77 77 78 5. Widoki i szablony Dynamiczne generowanie widoków Szablony Pomocnicze funkcje obsługi szablonów Przechowywanie szablonów Wiązanie Wiązanie modeli 81 81 82 84 85 86 87 6. Zarządzanie zaleŜnościami CommonJS Deklarowanie modułu Moduły i przeglądarka Biblioteki ładowania modułów Yabble RequireJS Opakowywanie modułów Rozwiązania alternatywne względem modułów LABjs FUBC 89 90 90 91 92 92 93 94 95 96 96 7. Praca z plikami Obsługa w przeglądarkach Pobieranie informacji na temat plików Kontrolka do przesyłania plików na serwer Przeciąganie i upuszczanie Przeciąganie Upuszczanie Anulowanie domyślnej obsługi przeciągania i upuszczania Kopiowanie i wklejanie Kopiowanie Wklejanie Czytanie plików DuŜe obiekty binarne oraz fragmenty pliku Własne przyciski przeglądarki Ładowanie plików na serwer Śledzenie postępu operacji Przesyłanie pliku na serwer przy uŜyciu przeciągania i upuszczania oraz biblioteki jQuery Obszar upuszczania Przesyłanie pliku na serwer 97 97 98 98 99 100 101 102 103 103 104 105 106 107 107 109 8. Praca w sieci w czasie rzeczywistym Historia działania w czasie rzeczywistym WebSockets Node.js i Socket.IO Architektura czasu rzeczywistego Odczuwana prędkość działania 113 113 114 118 119 121 9. Testowanie i usuwanie błędów Testy jednostkowe Asercje QUnit Jasmine Sterowniki Testowanie niezaleŜne Zombie Ichabod Testowanie rozproszone Świadczenie wsparcia Inspektory Web Inspector Firebug Konsola Funkcje pomocnicze konsoli 123 125 125 126 129 131 134 134 136 137 137 138 138 140 141 142 111 111 111 UŜywanie debuggera Analiza Ŝądań sieciowych Profilowanie i analiza czasu 143 144 145 10. WdraŜanie Wydajność Wykorzystanie pamięci podręcznej Minifikacja Kompresja Gzip Korzystanie z CDN Audytory Zasoby 149 149 150 152 153 154 155 156 11. Biblioteka Spine Instalacja Klasy Tworzenie instancji Rozszerzanie klas Kontekst Zdarzenia Modele Pobieranie rekordów Zdarzenia modelu Weryfikacja poprawności Zapisywanie Kontrolery Wskazywanie kontekstu Właściwość elements Delegowanie zdarzeń Zdarzenia kontrolera Zdarzenia globalne Wzorzec Render Wzorzec Element Aplikacja do zarządzania danymi kontaktowymi Model Contact Kontroler Sidebar Kontroler Contacts Kontroler App 157 157 158 158 159 160 161 161 163 163 164 164 166 167 167 168 168 169 170 170 171 173 173 175 178 12. Biblioteka Backbone Modele Modele i atrybuty Kolekcje Kontrola kolejności elementów w kolekcji Widoki 179 180 180 181 183 183 Generowanie widoków Delegowanie zdarzeń Wiązanie i kontekst Kontrolery Synchronizacja z serwerem Wypełnianie kolekcji Po stronie serwera Implementacja własnej logiki Aplikacja do zarządzania listą rzeczy do zrobienia 184 184 185 186 188 189 189 190 192 13. Biblioteka JavaScriptMVC Konfiguracja Klasy Tworzenie instancji Wywoływanie metody bazowej Określanie kontekstu Dziedziczenie statyczne Introspekcja Przykładowy model Model Atrybuty i dane obserwowalne Rozszerzanie modeli Metody ustawiające wartości Wartości domyślne Metody pomocnicze Enkapsulacja usług Przekształcanie typów Zdarzenia CRUD Wykorzystanie w widokach szablonów działających po stronie klienta Sposób uŜycia Modyfikatory jQuery Ładowanie widoku ze znacznika skryptu $.View i subszablony Obiekty wstrzymane Pakowanie, ładowanie wstępne i wydajność $.Controller: fabryka modułów rozszerzających jQuery Informacje ogólne Tworzenie instancji kontrolera Wiązanie zdarzeń Akcje szablonowe Kompletne rozwiązanie: abstrakcyjna lista czynności CRUD 199 200 200 200 201 201 201 202 202 203 203 205 205 206 206 207 209 210 210 211 211 212 212 212 213 213 215 216 216 217 218 A. Wprowadzenie do biblioteki jQuery 221 B. Rozszerzenia CSS 231 C. Przegląd CSS3 235 Skorowidz 255 oprac. BPK