Biblioteka jQuery : sprawdzone wzorce projektowe / Thodoris
Transkrypt
Biblioteka jQuery : sprawdzone wzorce projektowe / Thodoris
Biblioteka jQuery : sprawdzone wzorce projektowe / Thodoris Greasidis. – Gliwice, cop. 2017 Spis treści O autorze 9 O recenzencie 11 Przedmowa 13 Rozdział 1. Utrwalenie wiedzy o bibliotece jQuery i wzorcu Kompozyt Biblioteka jQuery i obsługa skryptowa modelu DOM Modyfikowanie modelu DOM za pomocą biblioteki jQuery Wzorzec Kompozyt Sposób wykorzystania wzorca Kompozyt przez bibliotekę jQuery Porównanie korzyści uzyskiwanych w przypadku rezygnacji ze zwykłego interfejsu API modelu DOM Użycie wzorca Kompozyt do projektowania aplikacji Wzorzec Iterator Sposób wykorzystania wzorca Iterator przez bibliotekę jQuery Powiązanie wzorca Iterator z wzorcem Kompozyt Zastosowanie wzorca Iterator Podsumowanie 19 20 21 26 26 29 31 34 34 36 36 38 Rozdział 2. Wzorzec Obserwator Wprowadzenie do wzorca Obserwator Sposób wykorzystania wzorca Obserwator przez bibliotekę jQuery Demonstracja przykładowego przypadku użycia Porównanie wzorca Obserwator z użyciem atrybutów zdarzeń Zapobieganie „wyciekom" pamięci Wprowadzenie do wzorca Obserwator ze zdarzeniami delegowanymi Upraszczanie kodu przez wzorzec Obserwator ze zdarzeniami delegowanymi Porównanie korzyści związanych z wykorzystaniem pamięci Podsumowanie 39 39 41 47 53 56 57 Rozdział 3. Wzorzec Publikowanie/Subskrybowanie Wprowadzenie do wzorca Publikowanie/Subskrybowanie Różnice między wzorcem Publikowanie/Subskrybowanie i wzorcem Obserwator Adaptowanie wzorca Publikowanie/Subskrybowanie przez bibliotekę 61 62 58 59 60 63 jQuery Zdarzenia niestandardowe w bibliotece jQuery Implementowanie schematu wzorca Publikowanie/Subskrybowanie za pomocą zdarzeń niestandardowych Demonstracja przykładowego przypadku użycia Użycie wzorca Publikowanie/Subskrybowanie w przykładzie panelu sterowania Rozszerzanie implementacji Użycie dowolnego obiektu jako brokera Zastosowanie przestrzeni nazw zdarzeń niestandardowych Podsumowanie 64 64 65 68 70 70 71 Rozdział 4. Dziel i zwyciężaj za pomocą wzorca Moduł Moduły i przestrzenie nazw Hermetyzowanie integralnych części implementacji Unikanie zmiennych globalnych za pomocą przestrzeni nazw Korzyści oferowane przez wzorce modułów i przestrzeni nazw Powszechna akceptacja Wzorzec Literał obiektu Wzorzec Moduł Blok konstrukcyjny wzorca IIFE Prosty wzorzec Moduł IIFE Wariant wzorca Moduł z przestrzenią nazw jako parametrem Wariant wzorca Moduł zawartego we wzorcu IIFE Wzorzec Moduł udostępniający Użycie funkcji Strict Mode języka ECMAScript 5 Wprowadzenie do modułów języka ECMAScript 6 Użycie modułów w aplikacjach jQuery Główny moduł dashboard Moduł categories Moduł informationBox Moduł counter Przegląd implementacji Podsumowanie 73 73 74 74 75 75 76 78 78 80 82 85 86 88 88 90 91 92 93 94 95 96 Rozdział 5. Wzorzec Fasada Wprowadzenie do wzorca Fasada Zalety wzorca Fasada Sposób adaptacji wzorca Fasada przez bibliotekę jQuery Interfejs API biblioteki jQuery operacji przechodzenia w obrębie modelu DOM Interfejs API operacji modyfikowania i uzyskiwania dostępu do właściwości Zastosowanie wzorca Fasada w aplikacjach Podsumowanie 97 97 98 99 64 65 100 103 104 107 Rozdział 6. Wzorce Budowniczy i Fabryka Wprowadzenie do wzorca Fabryka Wykorzystanie wzorca Fabryka przez bibliotekę jQuery Użycie wzorca Fabryka w aplikacjach Wprowadzenie do wzorca Budowniczy Wykorzystanie wzorca Budowniczy przez interfejs API biblioteki jQuery Zastosowanie wzorca Budowniczy wewnętrznie przez bibliotekę jQuery Wykorzystanie wzorca Budowniczy w aplikacjach Podsumowanie 109 109 110 112 116 117 120 122 126 Rozdział 7. Wzorce asynchronicznego przepływu sterowania Programowanie z wykorzystaniem wywołań zwrotnych Użycie prostych wywołań zwrotnych w języku JavaScript Konfigurowanie wywołań zwrotnych jako właściwości obiektu Zastosowanie wywołań zwrotnych w aplikacjach opartych na bibliotece jQuery Tworzenie metod akceptujących wywołania zwrotne Organizowanie wywołań zwrotnych Wprowadzenie do pojęcia obiektów Promise Użycie obiektów Promise Zagadnienia zaawansowane Tworzenie łańcucha obiektów Promise Obsługa zgłaszanych błędów Łączenie obiektów Promise Sposób użycia obiektów Promise przez bibliotekę jQuery Transformacja obiektów Promise w obiekty innych typów Podsumowanie zalet obiektów Promise Podsumowanie 127 128 129 129 130 132 133 136 138 143 143 145 146 147 148 149 150 Rozdział 8. Wzorzec Atrapa obiektu Wprowadzenie do wzorca Atrapa obiektu Użycie atrap obiektów w aplikacjach opartych na bibliotece jQuery Definiowanie faktycznych wymagań usługi Implementowanie atrapy usługi Użycie atrapy usługi Podsumowanie 151 151 153 154 155 157 158 Rozdział 9. Tworzenie szablonów klienckich Wprowadzenie do biblioteki Underscore.js Użycie szablonów biblioteki Underscore.js w aplikacjach Wprowadzenie do biblioteki Handlebars.js Użycie biblioteki Handlebars.js w aplikacjach Asynchroniczne pobieranie szablonów HTML Adaptowanie dynamicznego ładowania szablonów w istniejącej 159 160 161 164 166 169 implementacji Moderacja to najlepsza rzecz Podsumowanie 170 172 172 Rozdział 10. Wzorce do projektowania dodatków i widżetów Wprowadzenie do dodatków biblioteki jQuery Stosowanie zasad obowiązujących w bibliotece jQuery Użycie metody $.noConflict() Opakowywanie z wykorzystaniem wzorca IIFE Tworzenie dodatków do wielokrotnego wykorzystania Akceptowanie parametrów konfiguracyjnych Tworzenie stanowych dodatków biblioteki jQuery Implementowanie stanowego dodatku biblioteki jQuery Usuwanie instancji dodatku Implementowanie metod pobierających i ustawiających Użycie dodatku w aplikacji panelu sterowania Użycie projektu dodatków jQuery Boilerplate Dodawanie metod do dodatku Wybieranie nazwy Podsumowanie 173 174 174 177 177 179 179 182 183 185 186 187 188 190 191 192 Rozdział 11. Wzorce optymalizacji Umieszczanie skryptów w pobliżu końca kodu strony Tworzenie pakunków i minifikowanie zasobów Użycie parametrów wzorca IIFE Zastosowanie sieci CDN Zastosowanie interfejsu API sieci CDN JSDelivr Optymalizowanie wspólnego kodu w JavaScripcie Tworzenie lepszych pętli for Tworzenie wydajnych selektorów CSS Tworzenie efektywnego kodu jQuery Minimalizowanie operacji przechodzenia w obrębie modelu DOM Nie przesadzaj Usprawnianie operacji modyfikacji modelu DOM Użycie obserwatorów ze zdarzeniami delegowanymi Użycie metody $.noop() Użycie dodatku $.single „Leniwe" ładowanie modułów Podsumowanie 193 194 194 195 196 197 197 197 198 199 199 201 201 205 205 206 208 210 Skorowidz 213 oprac. BPK