Zastosuj błyskawiczne wczytywanie z wzorcem PRPL

PRPL to akronim opisujący wzorzec służący do wczytywania i załadowania stron internetowych stają się bardziej interaktywne i szybsze:

  • Wczytaj wstępnie ostatnio wykryte zasoby.
  • Wyrenderuj początkową trasę tak szybko, jak to możliwe.
  • Umieść w pamięci podręcznej pozostałe zasoby.
  • Leniwe ładowanie innych tras i niekrytycznych zasobów.

Z tego przewodnika dowiesz się, jak te techniki współgrają ze sobą, ale nadal mogą być przydatne używane niezależnie, aby uzyskać lepsze wyniki.

Audyt strony za pomocą narzędzia Lighthouse

Uruchom Lighthouse, aby określić możliwości poprawy zgodnie z PRPL techniki:

  1. Naciśnij „Control + Shift + J” (lub „Command + Option + J” na Macu), aby otworzyć Narzędzia deweloperskie.
  2. Kliknij kartę Lighthouse.
  3. Zaznacz pola wyboru Wydajność i Progresywna aplikacja internetowa.
  4. Kliknij Run Audits (Uruchom audyty), aby wygenerować raport.

Więcej informacji znajdziesz w artykule Odkrywanie możliwości zwiększenia wydajności za pomocą Lighthouse.

Wstępnie wczytuj najważniejsze zasoby

Lighthouse pokazuje nieudany audyt, jeśli określony zasób jest analizowany i spóźnione pobranie:

Lighthouse: audyt wstępnego wczytywania kluczowych żądań

Wstępne wczytywanie to deklaratywne żądanie pobierania, które informuje przeglądarkę, że ma poprosić o zasób, którego skaner wstępnego wczytywania nie może znaleźć (na przykład obraz, do którego odwołuje się właściwość background-image). Wczytuj wstępnie odkryte zasoby, dodając tag <link> z nagłówkiem rel="preload" w nagłówku dokumentu HTML:

<link rel="preload" as="image" href="hero-image.jpg">

Dodanie dyrektywy <link rel="preload"> spowoduje zainicjowanie żądania dotyczącego zasobu i zapisanie go w pamięci podręcznej. Dzięki temu przeglądarka może je w razie potrzeby pobrać.

Aby dowiedzieć się więcej o wstępnym wczytywaniu zasobów krytycznych, przeczytaj Przewodnik po wstępnym wczytywaniu najważniejszych zasobów.

Jak najszybciej wyrenderuj początkową trasę

Jeśli istnieją zasoby, które opóźniają pierwsze wyrenderowanie, Lighthouse wyświetli ostrzeżenie. moment renderowania pikseli na ekranie przez witrynę:

Lighthouse: wyeliminuj kontrolę zasobów blokujących renderowanie

Aby ulepszyć First Paint, Lighthouse zaleca wbudowanie kluczowych skryptów JavaScript odroczenie pozostałych przy użyciu funkcji async a także wbudowanie istotnych elementów CSS używanych w części strony widocznej na ekranie. Zwiększa to wydajność Eliminując przesyłanie danych w obie strony do serwera w celu pobrania zasobów blokujących renderowanie. Jednak z punktu widzenia programowania trudniej jest jednak utrzymywać kod wbudowany, nie może być osobno buforowana przez przeglądarkę.

Innym sposobem ulepszenia First Paint jest renderowanie po stronie serwera kod HTML strony. Spowoduje to wyświetlanie treści użytkownikowi natychmiast, gdy dostępne będą skrypty są w dalszym ciągu pobierane, analizowane i uruchamiane. Może to jednak zwiększyć pliku HTML, co może negatywnie wpłynąć na działanie Time to Interactive, lub czasu, jakiego potrzebuje, zanim aplikacja stanie się interaktywna i będzie mogła odpowiedzieć na dane wejściowe użytkownika.

Nie ma jednego poprawnego rozwiązania, które pozwoliłoby zmniejszyć pierwsze wyrenderowanie aplikacji. Rozważ tylko wbudowanie stylów i elementów po stronie serwera gdy korzyści przeważają wady aplikacji. Dostępne opcje Dowiedz się więcej o obu tych koncepcjach z tych materiałów.

Żądania/odpowiedzi uruchamiane skryptem service worker

Wstępnie buforuj zasoby

Dzięki pełnieniu funkcji serwera proxy składniki robocze mogą pobierać zasoby bezpośrednio z pamięci podręcznej a nie z serwera przy kolejnych wizytach. Dzięki temu użytkownicy mogą nie tylko aplikacji w trybie offline, ale powoduje też krótszy czas wczytywania stron do kolejnych wizyt.

Użyj biblioteki innej firmy, aby uprościć proces generowania skryptu service worker chyba że masz bardziej złożone wymagania dotyczące buforowania i udostępniania. Przykład: Workbox udostępnia zbiór narzędzi, które pozwalają utworzyć i utrzymywać skrypt service worker, zasobów pamięci podręcznej. Więcej informacji o mechanizmach Service Worker i niezawodności offline znajdziesz zapoznaj się z przewodnikiem po mechanizmach Service Worker na ścieżce szkoleniowej dotyczącej niezawodności.

Leniwe ładowanie

Jeśli wysyłasz zbyt dużo danych przez sieć, Lighthouse wyświetli nieudany audyt.

Lighthouse: przeprowadziło audyt bardzo dużych ładunków sieciowych

Obejmuje to wszystkie typy zasobów, ale duże ładunki JavaScript są szczególnie jest kosztowne ze względu na czas potrzebny przeglądarce na ich analizę i skompilowanie. W razie potrzeby Lighthouse też wyświetla ostrzeżenie.

Lighthouse: kontrola czasu uruchamiania JavaScriptu

Aby wysłać mniejszy ładunek JavaScript, który zawiera wyłącznie kod potrzebny podczas użytkownik początkowo wczytuje aplikację, a następnie dzieli cały pakiet i na żądanie dzieli go na fragmenty z leniwym ładowaniem.

Gdy uda Ci się już podzielić pakiet, wczytaj najpierw te, które są bardziej co jest ważne (przeczytaj przewodnik Wstępne wczytywanie kluczowych zasobów). Wstępne wczytywanie umożliwia szybsze pobieranie i pobieranie ważniejszych zasobów przez przeglądarkę.

Poza dzieleniem i wczytywaniem na żądanie różnych fragmentów JavaScriptu Lighthouse zapewnia też kontrolę leniwego wczytywania niekrytycznych obrazów.

Lighthouse: odrocz kontrolę obrazów poza ekranem

jeśli ładujesz na stronie wiele obrazów, odłóż wszystkie, które znajdują się w części strony widocznej po przewinięciu; poza widocznym obszarem urządzenia podczas wczytywania strony (przeczytaj artykuł o używaniu leniwego rozmiaru do leniwego ładowania obrazów).

Następne kroki

Znasz już podstawowe pojęcia związane ze wzorcem PRPL. przejdź do następnego przewodnika w tej sekcji, by dowiedzieć się więcej. Trzeba pamiętać, że nie wszystkie techniki muszą być stosowane razem. Wszelkie działania podjęte przy użyciu dowolnego z poniższych elementów przyniosą zauważamy wzrost wydajności.

  • Wstępne wczytywanie kluczowych zasobów.
  • Wyrenderuj początkową trasę tak szybko, jak to możliwe.
  • Umieść w pamięci podręcznej pozostałe zasoby.
  • Leniwe ładowanie innych tras i niekrytycznych zasobów.

Dowiedz się więcej o wzorcach PRPL.