Wydajny JavaScript.

Book description

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 mo-gą 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.

Table of contents

  1. Okładka
  2. Strona tytułowa
  3. Spis treści
  4. Wprowadzenie (1/2)
  5. Wprowadzenie (2/2)
  6. Pobieranie i wykonanie
    1. Pozycjonowanie skryptu
    2. Grupowanie skryptów
    3. Skrypty nieblokujące
      1. Skrypty odroczone
      2. Dynamiczne elementy skryptu
      3. Wstrzykiwanie skryptu za pomocą XMLHttpRequest
      4. Zalecany szablon nieblokujący
    4. Podsumowanie
  7. Dostęp do danych
    1. Zarządzanie zasięgiem
      1. Łańcuchy zasięgów i określanie identyfikatorów
      2. Wydajność odszukiwania identyfikatorów
      3. Rozszerzenie łańcucha zasięgu
      4. Zasięg dynamiczny
      5. Zamknięcia, zasięgi i pamięć
    2. Elementy obiektów
      1. Prototypy
      2. Łańcuchy prototypów
      3. Elementy zagnieżdżone
      4. Przechwytywanie wartości elementów obiektów
    3. Podsumowanie
  8. Skrypty w modelu DOM
    1. DOM w świecie przeglądarek
      1. Powolny z natury
    2. Dostęp do DOM i jego modyfikacja
      1. innerHTML a metody DOM
      2. Klonowanie węzłów
      3. Kolekcje HTML
      4. Przejście przez DOM
    3. Przemalowywanie i ponowne wlewanie
      1. Kiedy ma miejsce ponowne wlewanie?
      2. Kolejkowanie i czyszczenie zmian drzewa renderowania
      3. Minimalizacja przemalowywania i ponownego wlewania
      4. Przechwytywanie informacji o układzie
      5. Wyciąganie elementów z przepływu do wykonania animacji
      6. IE oraz :hover
    4. Delegowanie zdarzeń
    5. Podsumowanie
  9. Algorytmy i sterowanie przepływem
    1. Pętle
      1. Typy pętli
      2. Wykonywanie pętli
      3. Iteracja oparta na funkcji
    2. Instrukcje warunkowe
      1. if-else kontra switch
      2. Optymalizacja if-else
      3. Tablice wyszukiwania
    3. Rekurencja
      1. Limit stosu wywołań
      2. Wzory rekurencyjne
      3. Iteracja
      4. Memoizacja
    4. Podsumowanie
  10. Łańcuchy i wyrażenia regularne
    1. Łączenie łańcuchów
      1. Operatory plus (+) oraz plus-równa się (+=)
      2. Łączenie tablicy
      3. String.prototype.concat
    2. Optymalizacja wyrażeń regularnych
      1. Jak działa wyrażenie regularne
      2. Pojęcie nawracania
      3. Niekontrolowane nawracanie
      4. Uwaga na temat testów porównawczych
      5. Więcej metod poprawiania wydajności wyrażenia regularnego
      6. Kiedy nie korzystać z wyrażeń regularnych
    3. Przycinanie łańcuchów
      1. Przycinanie za pomocą wyrażeń regularnych
      2. Przycinanie bez wyrażeń regularnych
      3. Rozwiązanie hybrydowe
    4. Podsumowanie
  11. Reagujące interfejsy
    1. Wątek interfejsu użytkownika przeglądarki
      1. Ograniczenia przeglądarek
      2. Co oznacza zbyt długo?
    2. Działanie według zegarów
      1. Podstawowe wiadomości o zegarach
      2. Dokładność zegara
      3. Przetwarzanie tablic z zegarami
      4. Dzielenie zadań
      5. Kod z ograniczeniem czasowym
      6. Zegary i wydajność
    3. Wątki robocze Web
      1. Środowisko wątków roboczych
      2. Komunikacja wątków roboczych
      3. Ładowanie plików zewnętrznych
      4. Praktyczne zastosowania
    4. Podsumowanie
  12. Ajax
    1. Transmisja danych
      1. Żądanie danych
      2. Wysyłanie danych
    2. Formaty danych
      1. XML
      2. JSON
      3. HTML
      4. Formatowanie niestandardowe
      5. Wnioski dotyczące formatu danych
    3. Wskazówki dotyczące wydajności Ajax
      1. Buforowanie danych
      2. Poznanie ograniczeń swojej biblioteki Ajax
    4. Podsumowanie
  13. Praktyki programowania
    1. Unikanie podwójnego interpretowania
    2. Używanie literałów obiektów lub tablic
    3. Bez powtarzania pracy
      1. Leniwe ładowanie
      2. Warunkowe wcześniejsze ładowanie
    4. Zastosowanie szybkich części
      1. Operatory bitowe
      2. Metody wbudowane
    5. Podsumowanie
  14. Tworzenie i wdrażanie wysoko wydajnych aplikacji JavaScript
    1. Apache Ant
    2. Łączenie plików JavaScript
    3. Wstępne przetwarzanie plików JavaScript
    4. Minifikacja JavaScript
    5. Procesy czasu kompilacji a czas wykonywania
    6. Kompresja JavaScript
    7. Buforowanie plików JavaScript
    8. Obejście problemów buforowania
    9. Zastosowanie sieci dostarczania zawartości
    10. Wdrażanie zasobów JavaScript
    11. Sprawny proces kompilacji JavaScript
    12. Podsumowanie
  15. Narzędzia
    1. Profilowanie JavaScript
    2. YUI Profiler
    3. Funkcje anonimowe
    4. Firebug
      1. Panel konsoli programu Profiler
      2. Konsola API
      3. Panel Net
    5. Narzędzia programistyczne w Internet Explorer
    6. Web Inspector w Safari
      1. Panel Profiles
      2. Panel Resources
    7. Narzędzia deweloperskie w Chrome
    8. Blokowanie skryptów
    9. Page Speed
    10. Fiddler
    11. YSlow
    12. dynaTrace Ajax Edition
    13. Podsumowanie
  16. Indeks (1/2)
  17. Indeks (2/2)
  18. O autorze
  19. Kolofon

Product information

  • Title: Wydajny JavaScript.
  • Author(s): Nicholas C. Zakas
  • Release date: September 2016
  • Publisher(s): APN Promise
  • ISBN: 9788375413113