Starszy JavaScript
Silktide sprawdza, czy Twoja strona dostarcza dodatkowy kod, którego jedynym celem jest obsługa bardzo starych przeglądarek. Nowoczesne przeglądarki go nie potrzebują, więc dla niemal każdego użytkownika oznacza on zmarnowany czas pobierania i przetwarzania.
Gdy jest przygotowywany do publikacji, narzędzia do budowania często dodają polyfille (zamienniki funkcji, których brakuje starym przeglądarkom) i transformacje (przepisanie nowoczesnej składni na starsze odpowiedniki). Jeśli są skonfigurowane dla przeglądarek, które w zasadzie zniknęły, mogą znacząco zwiększyć zbędny rozmiar każdej strony podczas jej ładowania.
Dlaczego to ważne
Zdecydowana większość użytkowników korzysta z przeglądarek, które aktualizują się same i natywnie obsługują nowoczesny JavaScript. Kod obsługi starszych przeglądarek sprawia, że wszyscy płacą za niego — czasem pobierania, transferem danych mobilnych i czasem przetwarzania — dla zgodności z przeglądarkami, które mogą nie generować żadnego z Twoich rzeczywistych odwiedzin.
Ten koszt łatwo przeoczyć, ponieważ nic nie wygląda na nieprawidłowe: strona działa wszędzie. Jest po prostu wolniejsza, niż musi być, na każdej stronie i dla każdego.
Jak to naprawić
Jest to poprawka konfiguracji procesu budowania dla Twoich programistów:
- Ustaw docelowe przeglądarki obsługiwane przez proces budowania na te, z których faktycznie korzystają Twoi użytkownicy, zamiast na przestarzałe domyślne ustawienie. Większość narzędzi do budowania odczytuje je z deklaracji obsługiwanych przeglądarek w projekcie.
- Usuń ogólne importy polyfilli, które dodają obsługę wszystkiego, i pozwól procesowi budowania uwzględniać tylko to, czego rzeczywiście potrzebują Twoje cele.
- Jeśli nadal trzeba obsługiwać starszą przeglądarkę, udostępniaj dwa kompilacje — nowoczesną dla aktualnych przeglądarek i starszą tylko dla przeglądarek, które jej potrzebują — zamiast wysyłać starszą kompilację wszystkim.
Jak Silktide to testuje
- Załaduj stronę w rzeczywistej przeglądarce, używając typu urządzenia, szybkości połączenia i lokalizacji testowej skonfigurowanych dla testów szybkości.
- Sprawdź JavaScript pobierany przez stronę pod kątem znanych polyfilli i transformacji składni, których nowoczesne przeglądarki nie potrzebują.
- Zgłoś każdy plik zawierający starszy kod wraz z rozmiarem pobierania, który można zaoszczędzić.
- Oceń stronę na podstawie całkowitego zmarnowanego rozmiaru: około 30 KB starszego kodu obniża ocenę, a 100 KB lub więcej jest oceniane jako słabe.
Rozwiązywanie problemów
Nadal musimy obsługiwać stare przeglądarki
Zapytaj, czy Twoi użytkownicy faktycznie z nich korzystają — pokażą to Twoje dane analityczne. Jeśli niektórzy rzeczywiście ich używają, wzorzec module/nomodule pozwala udostępniać starszy kod tylko przeglądarkom, które go potrzebują, dzięki czemu nowoczesne przeglądarki przestają ponosić ten koszt.
Starszy kod znajduje się w skrypcie zewnętrznego dostawcy
Skrypty od innych dostawców mogą zawierać własny starszy nadmiarowy kod, którego nie możesz przebudować. Sprawdź, czy dostawca oferuje nowoczesną kompilację, i porównaj wartość skryptu z jego kosztem.