Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie \ JavaScript

Wydajny JavaScript Język: 1

9788375410686

Cena Brutto: 29.40

Cena netto: 28.00

Ilość:
Wersja: Drukowana
Autor Nicholas C. Zakas, Ross Harmes, Julien Lecomte, Steven Levithan, Stoyan Stefanov i Matt Sweeney
Liczba_stron 248
Wydawnictwo OReilly Media
Oprawa miękka
Data_Wydania 2010-08-01
Poziom All Levels

Jeśli jesteś podobny do większości projektantów, w znacznym stopniu opierasz się na JavaScript, aby tworzyć interaktywne i szybko reagujące aplikacje Web. Problem polega na tym, że wszystkie te wiersze kodu JavaScript mogą spowolnić nasze aplikacje. W tej książce pokazano techniki i strategie eliminowania wąskich gardeł już podczas pisania programu. Nauczymy się, jak między innymi poprawić czas wykonania, ładowanie kodu, interakcję z modelem DOM, cykl życia strony.

Nicholas C. Zakas, inżynier frontonu Yahoo! i pięciu innych ekspertów JavaScript Ross Harmes, Julien Lecomte, Steven Levithan, Stoyan Stefanov i Matt Sweeney – pokazują optymalne sposoby ładowania kodu na stronę oraz podają wskazówki programistyczne, dzięki którym JavaScript może działać tak szybko i efektywnie, jak to możliwe. Poznamy najlepsze praktyki tworzenia plików i ich wdrażania w środowisku eksploatacyjnym, a także narzędzia do rozwiązywania problemów na już działających stronach.

  • Znajdowanie problematycznego kodu i wykorzystanie szybszych alternatyw do wykonania tego samego zadania
  • Poprawianie skryptów poprzez poznanie sposobu przechowywania danych i dostępu do nich w JavaScript
  • Implementacja kodu JavaScript tak, aby nie opóźniał interakcji z DOM
  • Użycie technik optymalizacji do poprawy wydajności czasu wykonania
  • Poznanie metod gwarantujących, że interfejs będzie przez cały czas reagował
  • Osiągnięcie szybszej komunikacji między klientem a serwerem
  • Użycie systemu kompilacji w celu minifikacji plików oraz kompresji HTTP do dostarczania ich do przeglądarki

„Wydajny JavaScript obejmuje wszelkie problemy dotyczące wydajności, których programiści JavaScript powinni być świadomi. Lektura jej zdecydowanie rozszerzyła moją listę najlepszych praktyk związanych z wydajnością”.

– Steve Souders

„Wydajny JavaScript jest imponującą kolekcją tematów, wskazówek i sztuczek związanych z JavaScript – napisanych przez ekspertów w tej dziedzinie – zebranych w jednym miejscu. To cenna lektura dla każdego, kto chce pisać wydajne skrypty w języku JavaScript”.

–Venkat Udayasankar
Guru od wydajności,
Yahoo! Search

Wprowadzenie ix

1. Pobieranie i wykonanie 1

Pozycjonowanie skryptu .2

Grupowanie skryptów .4

Skrypty nieblokujące 6

Skrypty odroczone .6

Dynamiczne elementy skryptu .8

Wstrzykiwanie skryptu za pomocą XMLHttpRequest .10

Zalecany szablon nieblokujący 11

Podsumowanie 16

2. Dostęp do danych 17

Zarządzanie zasięgiem .18

Łańcuchy zasięgów i określanie identyfikatorów .19

Wydajność odszukiwania identyfikatorów 21

Rozszerzenie łańcucha zasięgu .24

Zasięg dynamiczny .26

Zamknięcia, zasięgi i pamięć .27

Elementy obiektów .29

Prototypy 30

Łańcuchy prototypów .31

Elementy zagnieżdżone 33

Przechwytywanie wartości elementów obiektów 34

Podsumowanie 36

3. Skrypty w modelu DOM .37

DOM w świecie przeglądarek 37

Powolny z natury 38

Dostęp do DOM i jego modyfikacja .38

innerHTML a metody DOM .40

Klonowanie węzłów .43

Kolekcje HTML .44

Przejście przez DOM 49

Przemalowywanie i ponowne wlewanie .53

Kiedy ma miejsce ponowne wlewanie? 54

Kolejkowanie i czyszczenie zmian drzewa renderowania 54

Minimalizacja przemalowywania i ponownego wlewania .56

Przechwytywanie informacji o układzie .60

Wyciąganie elementów z przepływu do wykonania animacji .60

IE oraz :hover .61

Delegowanie zdarzeń .61

Podsumowanie 64

4. Algorytmy i sterowanie przepływem .65

Pętle 65

Typy pętli 65

Wykonywanie pętli .67

Iteracja oparta na funkcji 72

Instrukcje warunkowe .73

if-else kontra switch 73

Optymalizacja if-else 75

Tablice wyszukiwania 77

Rekurencja 79

Limit stosu wywołań 79

Wzory rekurencyjne .81

Iteracja .81

Memoizacja 83

Podsumowanie 85

5. Łańcuchy i wyrażenia regularne 87

Łączenie łańcuchów .88

Operatory plus (+) oraz plus-równa się (+=) .88

Łączenie tablicy .91

String.prototype.concat 93

Optymalizacja wyrażeń regularnych 93

Jak działa wyrażenie regularne 94

Pojęcie nawracania .95

Niekontrolowane nawracanie 99

Uwaga na temat testów porównawczych 103

Więcej metod poprawiania wydajności wyrażenia regularnego ...........104

Kiedy nie korzystać z wyrażeń regularnych .107

Przycinanie łańcuchów 108

Przycinanie za pomocą wyrażeń regularnych .108

Przycinanie bez wyrażeń regularnych .111

Rozwiązanie hybrydowe .112

Podsumowanie 114

6. Reagujące interfejsy 115

Wątek interfejsu użytkownika przeglądarki .115

Ograniczenia przeglądarek .117

Co oznacza zbyt długo? ...............................................119

Działanie według zegarów 120

Podstawowe wiadomości o zegarach .120

Dokładność zegara .123

Przetwarzanie tablic z zegarami 124

Dzielenie zadań .126

Kod z ograniczeniem czasowym 128

Zegary i wydajność .129

Wątki robocze Web .130

Środowisko wątków roboczych 130

Komunikacja wątków roboczych .131

Ładowanie plików zewnętrznych .132

Praktyczne zastosowania 132

Podsumowanie 134

7. Ajax .135

Transmisja danych 135

Żądanie danych .135

Wysyłanie danych .142

Formaty danych .145

XML .146

JSON 150

HTML .153

Formatowanie niestandardowe .155

Wnioski dotyczące formatu danych .157

Wskazówki dotyczące wydajności Ajax 159

Buforowanie danych 159

Poznanie ograniczeń swojej biblioteki Ajax 161

Podsumowanie 163

8. Praktyki programowania 165

Unikanie podwójnego interpretowania 165

Używanie literałów obiektów lub tablic 167

Bez powtarzania pracy .168

Leniwe ładowanie .169

Warunkowe wcześniejsze ładowanie .170

Zastosowanie szybkich części 171

Operatory bitowe .171

Metody wbudowane 174

Podsumowanie 176

9. Tworzenie i wdrażanie wysoko wydajnych aplikacji JavaScript 177

Apache Ant .178

Łączenie plików JavaScript .179

Wstępne przetwarzanie plików JavaScript 180

Minifikacja JavaScript 183

Procesy czasu kompilacji a czas wykonywania 185

Kompresja JavaScript .185

Buforowanie plików JavaScript 187

Obejście problemów buforowania .188

Zastosowanie sieci dostarczania zawartości .189

Wdrażanie zasobów JavaScript 189

Sprawny proces kompilacji JavaScript .190

Podsumowanie 192

10. Narzędzia 193

Profilowanie JavaScript .194

YUI Profiler 195

Funkcje anonimowe .199

Firebug .200

Panel konsoli programu Profiler .200

Konsola API .201

Panel Net .203

Narzędzia programistyczne w Internet Explorer 204

Web Inspector w Safari 206

Panel Profiles .206

Panel Resources 209

Narzędzia deweloperskie w Chrome .210

Blokowanie skryptów .211

Page Speed 212

Fiddler 214

YSlow .216

dynaTrace Ajax Edition .217

Podsumowanie 220

Indeks 221

powrót
 
Produkty Podobne
Introduction to JavaScript Programming The Nothing but a Browser Approach
JavaScript w praktyce. Stwórz twitterowego bota, system sygnalizacyjny LED i inne projekty z użyciem Node.js i Raspberry Pi
React Native. Tworzenie aplikacji mobilnych w języku JavaScript. Wydanie II
Nowoczesny JavaScript. Poznaj ES6 i praktyczne zastosowania nowych rozwiązań
JavaScript. Wyrażenia regularne dla programistów
Angular. Profesjonalne techniki programowania. Wydanie II
Programowanie zorientowane obiektowo w języku JavaScript. Wydanie III
Node.js. Projektowanie, wdrażanie i utrzymywanie aplikacji
Python, C++, JavaScript. Zadania z programowania
Platforma Node.js. Przewodnik webdevelopera. Wydanie III
Więcej produktów