Przejdź do treści
SilktidePomoc

Zduplikowany JavaScript

Silktide sprawdza, czy jakikolwiek kod pobierany przez stronę nie jest dołączony więcej niż raz. Zduplikowany kod zwiększa rozmiar strony i spowalnia jej ładowanie, nie przynosząc odwiedzającym żadnych korzyści.

Współczesny jest zwykle składany z wielu małych modułów, które są łączone w kilka dużych plików. Gdy kilka paczek jest tworzonych niezależnie — na przykład własny kod i osadzony widżet — każda z nich może zawierać własną kopię tego samego modułu, przez co odwiedzający pobierają identyczną funkcjonalność dwukrotnie.

Dlaczego to ma znaczenie

Każdy zduplikowany moduł zwiększa czas pobierania i przetwarzania oraz zużycie danych mobilnych, nie oferując nic w zamian. W przypadku szybkiego połączenia biurowego to marnotrawstwo może być niewidoczne, ale odwiedzający korzystający z telefonów i wolniejszych sieci odczuwają je bezpośrednio, ponieważ strona pojawia się i reaguje wolniej.

Duplikacja ma też tendencję do niezauważalnego narastania: każdy nowy skrypt lub widżet dodany do witryny może zawierać własne kopie popularnych bibliotek, więc z czasem marnotrawstwo się kumuluje, chyba że ktoś go poszuka.

Jak to naprawić

To poprawka dla deweloperów, dotycząca procesu kompilowania witryny, a nie jej treści:

  1. Przeanalizuj sposób tworzenia paczek JavaScript witryny. Większość narzędzi do tworzenia paczek ma tryb analizy, który wizualizuje zawartość każdego pliku wynikowego, ułatwiając wykrycie zduplikowanych modułów.
  2. Skonfiguruj kompilację tak, aby usuwała duplikaty współdzielonych zależności. Dzięki temu biblioteka używana w kilku miejscach jest dołączana raz i współdzielona, zamiast być kopiowana do każdej paczki.
  3. Ujednolić wersje: dwóch różnych wersji tej samej biblioteki nie można scalić, więc często właściwym rozwiązaniem jest zaktualizowanie wszystkiego do jednej wersji.
  4. Jeśli duplikacja pochodzi ze skryptu innej firmy, którego nie możesz przebudować, poproś dostawcę o mniejszą wersję kompilacji albo zastąp ten skrypt.

Jak Silktide to testuje

  1. Wczytuje stronę w rzeczywistej przeglądarce, korzystając z typu urządzenia, szybkości połączenia i lokalizacji testowej skonfigurowanych dla testów szybkości.
  2. Analizuje pliki JavaScript pobierane przez stronę i identyfikuje moduły występujące w więcej niż jednym pliku. Kopie są dopasowywane na podstawie ich działania, więc są wykrywane nawet wtedy, gdy pliki są inaczej sformatowane lub .
  3. Raportuje każdy zduplikowany moduł, pliki, w których występuje, oraz rozmiar pobierania, który można zmniejszyć przez usunięcie dodatkowych kopii.
  4. Ocenia stronę na podstawie łącznego rozmiaru zmarnowanego pobierania: nawet około 10 KB duplikacji obniża ocenę, a 50 KB lub więcej otrzymuje słabą ocenę.

Rozwiązywanie problemów

Te dwa pliki nie zawierają identycznego kodu

Kontrola dopasowuje moduły na podstawie tego, czym są, a nie ich dokładnego tekstu. Ten sam moduł może wyglądać bardzo różnie w dwóch paczkach po minimalizacji, a mimo to nadal być tym samym zduplikowanym kodem.

Duplikacja znajduje się w skrypcie innej firmy

Nie możesz przebudować paczki należącej do kogoś innego. Zgłoś problem dostawcy, załaduj jego skrypt w inny sposób, który współdzieli Twoje zależności, albo zaakceptuj ten koszt, jeśli wartość skryptu go przewyższa.

Dowiedz się więcej

Ostatnio zaktualizowano

Czy ta strona była pomocna?