Arka plan hizmetlerinde hata ayıklama

Sofia Emelianova
Sofia Emelianova

Chrome Geliştirici Araçları'nın Arka plan hizmetleri bölümü, JavaScript API'leri için bir araç koleksiyonudur. Bu koleksiyon, web sitenizin kullanıcılar web sitenizi açmamış olsa bile güncelleme gönderip almasını sağlar. Arka plan hizmetleri, işlevsel olarak arka plan işlemlerine benzer.

Arka plan hizmetleri bölümünde aşağıdaki arka plan hizmetlerinde hata ayıklama yapabilirsiniz:

Chrome Geliştirici Araçları, DevTools açık olmasa bile getirme, senkronizasyon ve bildirim etkinliklerini üç gün boyunca günlüğe kaydedebilir. Bu, etkinliklerin beklendiği gibi gönderildiğinden ve alındığından emin olmanıza yardımcı olabilir.

Geliştirici Araçları, arka plan hizmet etkinliklerine ek olarak şunları da yapabilir:

Arka planda getirme

Background Fetch API, hizmet çalışanlarının film veya podcast gibi büyük kaynakları arka plan hizmeti olarak güvenilir bir şekilde indirmesine olanak tanır. Geliştirici Araçları açık olmasa bile arka planda getirme etkinliklerini üç gün boyunca günlüğe kaydetmek için:

  1. Örneğin, bu demo sayfasında Geliştirici Araçları'nı açın.
  2. Uygulama > Arka plan hizmetleri > Arka planda getirme'ye gidin ve Kayıt. Kaydet'i tıklayın.

    Arka planda getirme bölmesi.

  3. Demo sayfasında Öğeleri yerel olarak depolayın'ı tıklayın. Bu, arka planda getirme işlemini tetikler. Geliştirici Araçları, etkinlikleri tabloya kaydeder.

    Arka planda getirme bölmesinde etkinliklerin günlüğü.

  4. Bir etkinliği tıklayarak tablonun altındaki alanda ayrıntılarını görüntüleyin.

  5. Geliştirici Araçları'nı kapatıp kaydı üç güne kadar çalıştırabilirsiniz. Kaydı durdurmak için Durdur. Durdur'u tıklayın.

Arka plan senkronizasyonu

Arka Plan Senkronizasyonu API'si, çevrimdışı bir hizmet çalışanının güvenilir bir internet bağlantısı yeniden kurması durumunda bir sunucuya veri göndermesini sağlar. Geliştirici Araçları açık olmasa bile arka plan senkronizasyonu etkinliklerini üç gün boyunca günlüğe kaydetmek için:

  1. Örneğin, bu demo sayfasında Geliştirici Araçları'nı açın.
  2. Uygulama > Arka plan hizmetleri > Arka plan senkronizasyonu'na gidin ve Kayıt. Kaydet'i tıklayın.

    Arka plan senkronizasyonu bölmesi.

  3. İlgili hizmet çalışanını kaydetmek için demo sayfasında Arka plan senkronizasyonunu kaydet'i ve istemde bulunulduğunda İzin ver'i tıklayın.

    Hizmet çalışanı kaydı, arka planda senkronizasyon etkinliğidir. Geliştirici Araçları, etkinlikleri tabloya kaydeder.

    Arka plan senkronizasyonu bölmesinde etkinliklerin günlüğü.

  4. Bir etkinliği tıklayarak tablonun altındaki alanda ayrıntılarını görüntüleyin.

  5. Geliştirici Araçları'nı kapatabilir ve kaydı üç güne kadar çalıştırabilirsiniz. Kaydı durdurmak için Durdur. Durdur'u tıklayın.

(Deneysel) Hemen çıkma durumunu izleme çözümleri

Chrome'daki Hemen çıkma izleme azaltma denemesi, hemen çıkma izleme tekniğini kullanarak siteler arası izleme gerçekleştirdiği anlaşılan sitelerin durumunu tanımlamanıza ve silmenize olanak tanır. İzlemeyi azaltma önlemlerini manuel olarak zorlayabilir ve durumları silinen sitelerin listesini görebilirsiniz.

İzleme çözümlerini zorlamak için:

  1. Chrome'da üçüncü taraf çerezlerini engelleme Üç noktalı menü. > Ayarlar > Güvenlik. Gizlilik ve güvenlik > Çerezler ve diğer site verileri > Radyo düğmesi işaretli. Üçüncü taraf çerezlerini engelle'yi etkinleştirin.
  2. chrome://flags'te Hemen çıkma izleme çözümleri denemesini Silmeyle Etkin olarak ayarlayın.
  3. Örneğin, demo sayfasında DevTools'u açın ve Uygulama > Arka plan hizmetleri > Hemen çıkma izleme azaltma yöntemleri'ne gidin.
  4. Demo sayfasında bir hemen çıkma bağlantısını tıklayın ve Chrome'un hemen çıkmayı kaydetmesini bekleyin (10 saniye). Sorunlar sekmesi, yakında yapılacak durum silme işlemi hakkında sizi uyarır.
  5. Durumu hemen silmek için Zorla çalıştır'ı tıklayın.

Hemen çıkma durumunu izleme çözümleri, bir durumun silinmesini listeler.

Bildirimler

Bir hizmet çalışanı, sunucudan push mesajı aldıktan sonra verileri kullanıcıya göstermek için Notifications API'yi kullanır. Geliştirici Araçları açık olmasa bile bildirimleri üç gün boyunca günlüğe kaydetmek için:

  1. Örneğin, bu demo sayfasında Geliştirici Araçları'nı açın.
  2. Uygulama > Arka plan hizmetleri > Bildirimler'e gidin ve Kayıt. Kaydet'i tıklayın.

    Bildirimler bölmesi.

  3. Demo sayfasında Bildirim planla'yı ve ardından istemde bulunulduğunda İzin ver'i tıklayın.

  4. Bildirimin görünmesini bekleyin. DevTools, bildirim etkinliklerini tabloya kaydeder.

    Bildirimler bölmesinde etkinliklerin günlüğü.

  5. Bir etkinliği tıklayarak tablonun altındaki alanda ayrıntılarını görüntüleyin.

  6. Geliştirici Araçları'nı kapatıp kaydı üç güne kadar çalıştırabilirsiniz. Kaydı durdurmak için Durdur. Durdur'u tıklayın.

Tahmine dayalı yüklemeler

Tahmine dayalı yüklemeler, tanımladığınız spekülasyon kurallarına göre hemen hemen anında sayfa yükleme sağlar. Bu sayede web siteniz, gezinilen çoğu sayfayı önceden alabilir ve önceden oluşturabilir.

Ön getirme, bir kaynağı önceden getirir. Ön oluşturma ise bir adım daha ileri giderek sayfanın tamamını gizli bir arka plan oluşturucu sürecinde oluşturur.

Tahmine dayalı yüklemelerde hata ayıklama işlemini Uygulama > Arka plan hizmetleri > Tahmine dayalı yüklemeler bölümünden yapabilirsiniz. Bu bölüm üç görünüm içerir:

  • Tahmine dayalı yüklemeler. Geçerli sayfanın tahmine dayalı durumunu, geçerli URL'yi, geçerli sayfanın tahmine dayalı olarak yüklemeye çalıştığı sayfaları ve bu sayfaların durumlarını içerir.
  • Kurallar. Öğeler panelinde geçerli sayfadaki kural kümelerini ve spekülasyonların genel durumunu içerir.
  • Spekülasyonlar. Tahmini yükleme denemeleri ve durumlarıyla ilgili bilgileri içeren bir tablo içerir. Başarısız olan bir denemeyi tabloda tıklayarak ayrıntılı bilgileri ve başarısızlık nedenini görebilirsiniz.

Bu demo sayfasında tahmine dayalı yüklemelerle ilgili hataları ayıklamaya çalışın:

  1. Sayfada DevTools'u açın ve Uygulama > Arka plan hizmetleri > Tahmini yüklemeler'e gidin. Sayfa tarafından başlatılan tahmine dayalı yükleme göremezseniz sayfayı yeniden yükleyin.

    Bu sayfa tarafından tahmine dayalı olarak yüklenen URL'ler (iki başarılı ve bir başarısız).

  2. Demo'nun başlangıç sayfası iki sayfayı önceden işler ve bir sayfayı önceden işleyemez. Tüm tahminleri görüntüle'yi tıklayın.

  3. Spekülasyonlar bölümünde, Hata durumuna sahip spekülasyonu seçerek ayrıntılı bilgilerin yer aldığı Hata nedeni bölümünü görebilirsiniz.

    Başarısız spekülasyon seçildi.

    Bu durumda, web sitesinde /next3.html sayfası olmadığı için önceden getirme işlemi başarısız oldu.

  4. Kurallar bölümünü açın ve en altta kural grubunu görmek için Durum'u tıklayın. Kural grubu bağlantısını tıkladığınızda Öğeler paneline yönlendirilirsiniz ve spekülasyon kuralının nerede tanımlandığını görürsünüz.

    Kural grubunun bağlantısını içeren Kurallar bölümü.

Daha ayrıntılı bir açıklama için Spekülasyon kurallarında hata ayıklama başlıklı makaleyi inceleyin.

Push mesajlaşma

Bir hizmet çalışanının kullanıcıya push bildirimi göstermesi için önce bir sunucudan veri almak üzere PushMessage API'yi kullanması gerekir. Hizmet çalışanı, bildirimi göstermeye hazır olduğunda Notifications API'yi kullanır. Geliştirici Araçları açık olmasa bile push mesajlarını üç gün boyunca günlüğe kaydetmek için:

  1. Örneğin, bu demo sayfasında Geliştirici Araçları'nı açın.
  2. Uygulama > Arka plan hizmetleri > Push Mesajları'na gidin ve Kayıt. Kaydet'i tıklayın.

    Push Mesajlaşma bölmesi.

  3. Demo sayfasında Push bildirimleri etkinleştir'i açın, istem göründüğünde İzin ver'i tıklayın, bir mesaj yazın ve gönderin. DevTools, push bildirim etkinliklerini tabloya kaydeder.

    Push Mesajları bölmesinde etkinliklerin günlüğü.

  4. Bir etkinliği tıklayarak tablonun altındaki alanda ayrıntılarını görüntüleyin.

  5. Geliştirici Araçları'nı kapatabilir ve kaydı üç güne kadar çalıştırabilirsiniz. Kaydı durdurmak için Durdur. Durdur'u tıklayın.

Reporting API

Bazı hatalar yalnızca üretimde gerçekleşir. Gerçek kullanıcılar, ağlar ve cihazlar oyunu değiştirdiği için bunları yerel olarak veya geliştirme sırasında hiçbir zaman görmezsiniz.

Örneğin, yeni sitenizin kritik komut dosyalarını yüklemek için document.write() kullanan üçüncü taraf yazılımlara bağlı olduğunu varsayalım. Dünyanın dört bir yanındaki yeni kullanıcılar sitenizi açıyor ancak bağlantıları, test ettiğinizden daha yavaş olabilir. Chrome, yavaş ağlarda document.write() için müdahale ettiğinden siteniz, sizin haberiniz olmadan bu kullanıcılar için çalışmamaya başlar. Alternatif olarak, kod tabanınızda kullanılıyor olabilecek desteği sonlandırılmış veya yakında desteği sonlandırılacak API'leri de gözden geçirebilirsiniz.

Reporting API, desteği sonlandırılan API çağrılarını, sayfanızdaki güvenlik ihlallerini ve daha fazlasını izlemenize yardımcı olmak için tasarlanmıştır. Raporlamayı, Reporting API ile web uygulamanızı izleme bölümünde açıklandığı şekilde ayarlayabilirsiniz.

Bir sayfa tarafından oluşturulan raporları görüntülemek için:

  1. chrome://flags/#enable-experimental-web-platform-features bölümüne gidin, Deneysel Web Platformu özellikleri'ni Etkin olarak ayarlayın ve Chrome'u yeniden başlatın.
  2. DevTools'u açın ve Uygulama > Arka plan hizmetleri > Reporting API'ye gidin. Örneğin, bu demo sayfasında raporları inceleyebilirsiniz.

    Reporting API'de listelenen raporlar

Reporting API sekmesi üç bölüme ayrılmıştır:

  • Her raporla ilgili aşağıdaki bilgileri içeren Raporlar tablosu:
    • Rapor oluşturulmasına neden olan URL
    • İhlal Türü
    • Rapor Durumları
    • Hedef uç noktası
    • Oluşturulma zamanı zaman damgası
    • Rapor Başlığı
  • Rapor gövdesi önizleme bölümü. Bir rapor gövdesini önizlemek için rapor tablosunda bir raporu tıklayın.
  • Reporting-Endpoints başlığında yapılandırılan tüm uç noktalara genel bakış sunan Uç noktalar bölümü.

Rapor durumu

Durum sütunu, Chrome'un raporu başarıyla gönderip göndermediğini, göndermek üzere olup olmadığını veya göndermeyi başaramadığını gösterir.

Durum Açıklama
Success Tarayıcı raporu gönderdi ve uç nokta bir başarı koduyla (200 veya başka bir başarı yanıt kodu 2xx) yanıt verdi.
Pending Tarayıcı, raporu göndermeye çalışıyor.
Queued Rapor oluşturuldu ve tarayıcı henüz göndermeye çalışmıyor. Bir rapor aşağıdaki iki durumdan birinde Queued olarak görünür:
  • Rapor yeni olduğu için tarayıcı, göndermeden önce daha fazla rapor gelip gelmediğini bekler.
  • Rapor yeni değil. Tarayıcı bu raporu göndermeyi daha önce denemiş ve başarısız olmuştur. Tekrar denemeden önce beklemektedir.
MarkedForRemoval Tarayıcı, bir süre boyunca yeniden denedikten (Queued) sonra raporu göndermeye çalışmayı bıraktı ve yakında raporu gönderilecek raporlar listesinden kaldıracak.

Raporlar, başarıyla gönderilmiş olsun veya olmasın bir süre sonra kaldırılır.