Debugowanie usług w tle

Kayce Basques
Kayce Basques
Sofia Emelianova
Sofia Emelianova

Sekcja Usługi w tle w Narzędziach deweloperskich w Chrome to zbiór narzędzi do interfejsów API JavaScript, które umożliwiają witrynie wysyłanie i odbieranie aktualizacji nawet wtedy, gdy użytkownik nie ma otwartej witryny. Usługa w tle jest funkcjonalnie podobna do procesu w tle.

W sekcji Usługi w tle możesz debugować te usługi w tle:

Narzędzia deweloperskie w Chrome mogą rejestrować zdarzenia pobierania, synchronizacji i powiadomień przez 3 dni, nawet gdy nie są otwarte. Może to pomóc w upewnieniu się, że zdarzenia są wysyłane i odbierane zgodnie z oczekiwaniami.

Oprócz zdarzeń usługi w tle Narzędzia deweloperskie mogą:

Pobieranie w tle

Interfejs Background Fetch API umożliwia skryptowi service worker niezawodne pobieranie dużych zasobów, takich jak filmy czy podcasty, w ramach usługi w tle. Aby rejestrować zdarzenia pobierania w tle przez 3 dni, nawet gdy narzędzia deweloperskie nie są otwarte:

  1. Otwórz Narzędzia deweloperskie na stronie, która korzysta z interfejsu Background Fetch API.
  2. Kliknij kolejno Aplikacja > Usługi w tle > Pobieranie w tle i kliknij Nagraj. Nagrywaj.

    Karta Pobranie w tle.

  3. Na stronie wywołaj aktywność pobierania w tle. Narzędzia deweloperskie rejestrują zdarzenia w tabeli.

    Dziennik zdarzeń na karcie Pobieranie w tle.

  4. Kliknij zdarzenie, aby wyświetlić jego szczegóły w obszarze pod tabelą.

  5. Możesz zamknąć Narzędzia deweloperskie i pozostawić nagrywanie na maksymalnie 3 dni. Aby zatrzymać nagrywanie, kliknij Zatrzymaj. Zatrzymaj.

Synchronizacja w tle

Background Sync API umożliwia skryptowi service worker działającemu w trybie offline wysyłanie danych na serwer po ponownym nawiązaniu stabilnego połączenia z internetem. Aby rejestrować zdarzenia synchronizacji w tle przez 3 dni, nawet gdy narzędzia deweloperskie nie są otwarte:

  1. Otwórz Narzędzia deweloperskie, np. na tej stronie demonstracyjnej.
  2. Kliknij kolejno Aplikacja > Usługi w tle > Synchronizacja w tle i kliknij Nagraj. Nagrywaj.

    Karta Synchronizacja w tle.

  3. Na stronie wersji demonstracyjnej kliknij Register background sync (Zarejestruj synchronizację w tle), aby zarejestrować odpowiedni skrypt service worker, a gdy pojawi się prośba, kliknij Allow (Zezwól).

    Rejestracja skryptu service worker to działanie synchronizacji w tle. Narzędzia deweloperskie rejestrują zdarzenia w tabeli.

    Dziennik zdarzeń na karcie Synchronizacja w tle.

  4. Kliknij zdarzenie, aby wyświetlić jego szczegóły w obszarze pod tabelą.

  5. Możesz zamknąć Narzędzia deweloperskie i pozostawić nagrywanie na maksymalnie 3 dni. Aby zatrzymać nagrywanie, kliknij Zatrzymaj. Zatrzymaj.

(Eksperymentalne) Łagodzenie śledzenia przekierowań

Eksperyment Bounce tracking mitigations w Chrome umożliwia identyfikowanie i usuwanie stanu witryn, które wydają się śledzić użytkowników w witrynach za pomocą techniki śledzenia przekierowań. Możesz ręcznie wymusić środki ograniczające śledzenie i wyświetlić listę witryn, których stany zostały usunięte.

Aby wymusić łagodzenie śledzenia:

  1. Blokuj pliki cookie innych firm w Chrome. Otwórz Menu z 3 kropkami. > Ustawienia > Zabezpieczenia. Prywatność i bezpieczeństwo > Pliki cookie i inne dane witryn > Zaznaczono opcję. Blokuj pliki cookie innych firm i włącz tę opcję.
  2. W sekcji chrome://flags ustaw eksperyment Łagodzenie śledzenia przekierowań na Włączone z usuwaniem.
  3. Otwórz Narzędzia deweloperskie i kliknij Aplikacja > Usługi w tle > Ograniczenia śledzenia przekierowań.
  4. Kliknij link odrzucenia i poczekaj (10 sekund), aż Chrome zarejestruje odrzucenie. Karta Problemy zawiera ostrzeżenie o nadchodzącym usunięciu stanu.
  5. Kliknij Wymuś uruchomienie, aby natychmiast usunąć stan.

Łagodzenie śledzenia przekierowań zawiera listę usuniętych stanów.

Powiadomienia

Gdy skrypt service worker otrzyma komunikat push z serwera, używa interfejsu Notifications API, aby wyświetlić dane użytkownikowi. Aby rejestrować powiadomienia przez 3 dni, nawet gdy Narzędzia deweloperskie nie są otwarte:

  1. Otwórz Narzędzia deweloperskie
  2. Kliknij kolejno Aplikacja > Usługi w tle > Powiadomienia i kliknij Nagraj. Nagrywaj.

    Karta Powiadomienia.

  3. Kliknij Zaplanuj powiadomienieZezwól, gdy pojawi się prośba.

  4. Poczekaj na pojawienie się powiadomienia. Narzędzia deweloperskie rejestrują zdarzenia powiadomień w tabeli.

    Dziennik zdarzeń na karcie Powiadomienia.

  5. Kliknij zdarzenie, aby wyświetlić jego szczegóły w obszarze pod tabelą.

  6. Możesz zamknąć Narzędzia deweloperskie i pozostawić nagrywanie na maksymalnie 3 dni. Aby zatrzymać nagrywanie, kliknij Zatrzymaj. Zatrzymaj.

Ładowanie spekulacyjne

Ładowanie spekulacyjne umożliwia niemal natychmiastowe wczytanie strony na podstawie reguł spekulacji, które określasz. Dzięki temu Twoja witryna może wstępnie pobierać i renderować strony, do których użytkownicy najczęściej przechodzą.

Wstępne pobieranie polega na pobraniu zasobu z wyprzedzeniem, a renderowanie wstępne to kolejny krok, który polega na renderowaniu całej strony w ukrytym procesie renderowania w tle.

Ładowanie spekulacyjne możesz debugować w sekcji Aplikacja > Usługi w tle > Ładowanie spekulacyjne. Sekcja zawiera 3 widoki:

  • Ładowanie spekulacyjne Zawiera stan spekulacyjny bieżącej strony, bieżący adres URL, strony, które bieżąca strona próbuje załadować spekulacyjnie, oraz ich stany.
  • Reguły Zawiera zestawy reguł na bieżącej stronie w panelu Elementy oraz ogólny stan spekulacji.
  • Spekulacje Zawiera tabelę z informacjami o próbach ładowania spekulacyjnego i ich stanach. Jeśli próba się nie powiodła, możesz kliknąć ją w tabeli, aby wyświetlić szczegółowe informacje i przyczynę niepowodzenia.

Spróbuj debugować ładowanie spekulacyjne na tej stronie demonstracyjnej wstępnego renderowania:

  1. Otwórz Narzędzia deweloperskie na stronie i kliknij Aplikacja > Usługi w tle > Spekulacyjne wczytywanie. Jeśli nie widzisz żadnych spekulacyjnych ładowań zainicjowanych przez stronę, załaduj ją ponownie.

    Adresy URL ładowane spekulacyjnie przez tę stronę, 2 sukcesy i 1 błąd.

  2. Strona początkowa wersji demonstracyjnej wstępnie renderuje 2 strony, a 1 nie. Kliknij Wyświetl wszystkie spekulacje.

  3. W sekcji Spekulacje wybierz spekulację ze stanem Niepowodzenie, aby wyświetlić sekcję Przyczyna niepowodzenia ze szczegółowymi informacjami u dołu.

    Wybrana nieudana spekulacja.

    W tym przypadku renderowanie wstępne nie powiodło się, ponieważ w witrynie nie ma strony /next3.html.

  4. Otwórz sekcję Reguły i kliknij Stan, aby wyświetlić zestaw reguł u dołu. Kliknięcie linku Zbiór reguł powoduje przejście do panelu Elementy i wyświetlenie miejsca, w którym zdefiniowano regułę spekulacyjną.

    Sekcja Reguły z linkiem do zestawu reguł.

Szczegółowe instrukcje znajdziesz w artykule Debugowanie reguł spekulacyjnych.

Komunikaty push

Aby wyświetlić użytkownikowi powiadomienie push, skrypt service worker musi najpierw użyć interfejsu Push Message API, aby otrzymać dane z serwera. Gdy skrypt service worker jest gotowy do wyświetlenia powiadomienia, używa interfejsu Notifications API. Aby rejestrować wiadomości push przez 3 dni, nawet gdy narzędzia deweloperskie nie są otwarte:

  1. Otwórz Narzędzia deweloperskie, np. na tej stronie demonstracyjnej.
  2. Kliknij kolejno Aplikacja > Usługi działające w tle > Wiadomości push i kliknij Nagraj. Nagrywaj.

    Karta Komunikaty push.

  3. Na stronie demonstracyjnej włącz Włącz powiadomienia push, a gdy pojawi się odpowiedni komunikat, kliknij Zezwól. Następnie wpisz wiadomość i wyślij ją. Narzędzia deweloperskie rejestrują zdarzenia powiadomień push w tabeli.

    Dziennik zdarzeń na karcie Wiadomości push.

  4. Kliknij zdarzenie, aby wyświetlić jego szczegóły w obszarze pod tabelą.

  5. Możesz zamknąć Narzędzia deweloperskie i pozostawić nagrywanie na maksymalnie 3 dni. Aby zatrzymać nagrywanie, kliknij Zatrzymaj. Zatrzymaj.

Interfejs API do raportowania

Niektóre błędy występują tylko w środowisku produkcyjnym. Nie widzisz ich lokalnie ani podczas programowania, ponieważ prawdziwi użytkownicy, sieci i urządzenia zmieniają zasady gry.

Załóżmy na przykład, że nowa witryna korzysta z oprogramowania innej firmy, które używa komponentu document.write() do wczytywania krytycznych skryptów. Nowi użytkownicy z całego świata otwierają Twoją witrynę, ale mogą mieć wolniejsze połączenia niż te, które były używane podczas testów. Nie wiesz o tym, ale Twoja witryna zaczyna działać nieprawidłowo, ponieważ Chrome interweniuje document.write() w przypadku wolnych sieci. Możesz też śledzić wycofane lub wkrótce wycofane interfejsy API, których może używać Twoja baza kodu.

Interfejs API do raportowania pomaga monitorować wycofane wywołania interfejsu API, naruszenia bezpieczeństwa na stronie i inne kwestie. Raportowanie możesz skonfigurować zgodnie z opisem w artykule Monitorowanie aplikacji internetowej za pomocą interfejsu API do raportowania.

Aby wyświetlić raporty wygenerowane przez stronę:

  1. Otwórz chrome://flags/#enable-experimental-web-platform-features, ustaw Eksperymentalne funkcje platformy internetowej na Włączone i ponownie uruchom Chrome.
  2. Otwórz Narzędzia deweloperskie i kliknij Aplikacja > Usługi działające w tle > interfejs API do raportowania.

    Raporty wymienione w interfejsie API do raportowania

Karta Interfejs API do raportowania jest podzielona na 3 części:

  • Tabela Raporty z tymi informacjami o każdym raporcie:
    • Adres URL, który spowodował wygenerowanie raportu
    • Typ naruszenia
    • Raport Stan
    • Punkt końcowy miejsca docelowego
    • Sygnatura czasowa wygenerowania
    • Zgłoś treść
  • Sekcja podglądu Treść raportu. Aby wyświetlić podgląd treści raportu, kliknij go w tabeli raportów.
  • Sekcja Punkty końcowe z omówieniem wszystkich punktów końcowych skonfigurowanych w nagłówku Reporting-Endpoints.

Stan raportu

Kolumna Stan informuje, czy Chrome wysłał raport, czy zamierza go wysłać, czy też nie udało mu się tego zrobić.

Stan Opis
Success Przeglądarka wysłała raport, a punkt końcowy odpowiedział kodem powodzenia (200 lub innym kodem odpowiedzi oznaczającym powodzenie 2xx).
Pending Przeglądarka próbuje wysłać raport.
Queued Raport został wygenerowany, ale przeglądarka nie próbuje go jeszcze wysłać. Raport jest wyświetlany jako Queued w jednym z tych 2 przypadków:
  • Raport jest nowy, a przeglądarka czeka, aż pojawi się więcej raportów, zanim spróbuje go wysłać.
  • Raport nie jest nowy. Przeglądarka próbowała już go wysłać, ale nie udało się to. Czeka teraz na ponowną próbę.
MarkedForRemoval Po pewnym czasie (Queued) przeglądarka przestaje próbować wysłać raport i wkrótce usunie go z listy raportów do wysłania.

Raporty są po pewnym czasie usuwane, niezależnie od tego, czy zostały wysłane.

Sesje powiązane z urządzeniem

Dane uwierzytelniające sesji powiązane z urządzeniem (DBSC) to interfejs API sieci i protokół między klientami użytkownika a serwerami, który ma zapobiegać kradzieży plików cookie, umożliwiając klientowi użytkownika potwierdzenie posiadania bezpiecznie przechowywanego klucza prywatnego.

Aby wyświetlić sesje powiązane z urządzeniem, ich definicje i zdarzenia:

  1. Otwórz Narzędzia deweloperskie na stronie, która korzysta z DBSC.
  2. Kliknij Aplikacja > Usługi w tle > Sesje powiązane z urządzeniem.
  3. Na pasku bocznym po lewej stronie rozwiń witrynę, aby wyświetlić aktywne sesje. Wybierz sesję, aby wyświetlić jej definicję.

    Karta Sesje powiązane z urządzeniem.

  4. W tabeli Wydarzenia rejestrowane są zdarzenia dotyczące DBSC: tworzenie, odświeżanie, weryfikacja i zakończenie. Aby zachować listę zdarzeń podczas nawigacji po stronach, zaznacz check_box Zachowaj dziennik.

  5. W tabeli Zdarzenia wybierz zdarzenie, aby wyświetlić jego szczegóły.

  6. Jeśli zdarzenie się nie powiedzie, w kolumnie Wynik zobaczysz komunikat Error. Wybierz zdarzenie, które się nie powiodło, aby wyświetlić jego szczegóły, kod błędu odpowiedzi i przyczynę niepowodzenia.

    Karta „Sesje powiązane z urządzeniem” z wybranym zdarzeniem błędu.

Sekcja Sesje powiązane z urządzeniem na pasku bocznym może wyróżniać te problemy:

  • Zakończone sesje: w panelu bocznym są oznaczone przekreśleniem i ikoną wyłączonej bazy danych.
  • Nieudane zdarzenia: oznaczone ikoną ostrzeżenia. Element Brak sesji rejestruje nieudane zdarzenia, które były powiązane z witryną, ale nie z znaną sesją.