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

Podobne dokumenty