Arka plan hizmetlerinde hata ayıklama

Kayce Basques
Kayce Basques
Sofia Emelianova
Sofia Emelianova

Chrome Geliştirici Araçları'nın Arka plan hizmetleri bölümü, web sitenizin kullanıcılar web sitenizi açık tutmadığında bile güncelleme göndermesini ve almasını sağlayan JavaScript API'leri için bir araç koleksiyonudur. Arka plan hizmeti, işlevsel olarak arka plan işlemine benzer.

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

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

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

Arka planda getirme

Background Fetch API, hizmet çalışanı'nın filmler veya podcast'ler gibi büyük kaynakları arka plan hizmeti olarak güvenilir bir şekilde indirmesini sağlar. Geliştirici Araçları açık olmasa bile arka planda getirme etkinliklerini üç gün boyunca kaydetmek için:

  1. Arka planda getirme API'sini kullanan bir sayfada Geliştirici Araçları'nı açın.
  2. Uygulama > Arka plan hizmetleri > Arka planda getirme'ye gidin ve Kaydet'i tıklayın. Kaydet'i tıklayın.

    Arka planda getirme sekmesi.

  3. Sayfanızda arka planda getirme etkinliği tetikleyin. Geliştirici Araçları, etkinlikleri tabloya kaydeder.

    Arka planda getirme sekmesindeki etkinliklerin günlüğü.

  4. Ayrıntılarını tablonun altındaki alanda görüntülemek için bir etkinliği tıklayın.

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

Arka plan senkronizasyonu

Arka planda senkronizasyon API'si, çevrimdışı service worker'ın güvenilir bir internet bağlantısı yeniden kurulduktan sonra sunucuya veri göndermesini sağlar. Geliştirici Araçları açık olmasa bile arka plan senkronizasyonu etkinliklerini üç gün boyunca 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 Kaydet'i tıklayın. Kaydet'i tıklayın.

    Arka plan senkronizasyonu sekmesi.

  3. Demo sayfasında, ilgili hizmet çalışanını kaydetmek için Register background sync'i (Arka plan senkronizasyonunu kaydet) tıklayın ve istendiğinde Allow'u (İzin ver) tıklayın.

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

    Arka plan senkronizasyonu sekmesindeki etkinliklerin günlüğü.

  4. Ayrıntılarını tablonun altındaki alanda görüntülemek için bir etkinliği tıklayın.

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

(Deneysel) Sıçramalı izleme çözümleri

Chrome'daki sıçrama izlemeyi azaltma denemesi, sıçrama izleme tekniğini kullanarak siteler arası izleme yaptığı görünen sitelerin durumunu belirlemenize ve silmenize olanak tanır. İzlemeyi azaltma işlemlerini manuel olarak zorlayabilir ve durumları silinen sitelerin listesini görebilirsiniz.

İzleme çözümlerini zorunlu kılmak için:

  1. Chrome'da üçüncü taraf çerezlerini engelleme Üç nokta menüsü. > Ayarlar > Güvenlik. Gizlilik ve güvenlik > Çerezler ve diğer site verileri > Radyo düğmesi işaretlendi. Üçüncü taraf çerezlerini engelle'ye gidin ve bu ayarı etkinleştirin.
  2. chrome://flags bölümünde, Sıçramalı izleme çözümleri denemesini Silme İşlemiyle Etkinleştirildi olarak ayarlayın.
  3. Geliştirici Araçları'nı açın ve Uygulama > Arka plan hizmetleri > Sıçramalı izleme azaltmaları'na gidin.
  4. Bir yönlendirme bağlantısını tıklayın ve Chrome'un yönlendirmeyi kaydetmesi için bekleyin (10 saniye). Sorunlar sekmesi, yaklaşan durum silme işlemi hakkında sizi uyarır.
  5. Durumu hemen silmek için Çalışmaya zorla'yı tıklayın.

Sıçramalı izleme çözümleri, durum silme işlemini listeler.

Bildirimler

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

  1. Geliştirici Araçları'nı açma
  2. Uygulama > Arka plan hizmetleri > Bildirimler'e gidin ve Kaydet'i tıklayın. Kaydet'i tıklayın.

    Bildirimler sekmesi

  3. Bildirimi Planla'yı tıklayın ve istendiğinde İzin ver'i seçin.

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

    Bildirimler sekmesindeki etkinliklerin günlüğü.

  5. Ayrıntılarını tablonun altındaki alanda görüntülemek için bir etkinliği tıklayın.

  6. Geliştirici Araçları'nı kapatabilir ve kaydın üç güne kadar çalışmasına izin verebilirsiniz. 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 dayalı olarak neredeyse anında sayfa yüklemesi sağlar. Bu sayede web siteniz, en çok ziyaret edilen sayfaları önceden getirebilir ve önceden oluşturabilir.

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

Tahmine dayalı yüklemelerde hata ayıklamak için Application (Uygulama) > Background services (Arka plan hizmetleri) > Speculative loads (Tahmine dayalı yüklemeler) bölümüne gidebilirsiniz. Bu bölümde üç görünüm bulunur:

  • Tahmine dayalı yüklemeler. Geçerli sayfanın, geçerli URL'nin, geçerli sayfanın tahmine dayalı olarak yüklemeye çalıştığı sayfaların ve bunların durumlarının tahmine dayalı durumunu içerir.
  • Kurallar Öğeler panelinde geçerli sayfadaki kural kümelerini ve tahminlerin genel durumunu içerir.
  • Spekülasyonlar. Tahmine dayalı içerik yükleme girişimleri ve bunların durumları hakkında bilgi içeren bir tablo içerir. Bir deneme başarısız olursa ayrıntılı bilgileri ve başarısızlık nedenini görmek için tablodan ilgili denemeyi tıklayabilirsiniz.

Bu önceden oluşturma demo sayfasında tahmine dayalı içerik yüklemelerde hata ayıklamayı deneyin:

  1. Sayfada Geliştirici Araçları'nı açın ve Uygulama > Arka plan hizmetleri > Tahmini yüklemeler'e gidin. Sayfa tarafından başlatılan tahmine dayalı yüklemeleri göremiyorsanız sayfayı yeniden yükleyin.

    Bu sayfa tarafından spekülatif olarak yüklenen URL'ler (iki başarılı, bir başarısız).

  2. Demonun 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. Tahminler bölümünde, Başarısız durumundaki tahmini seçerek alttaki ayrıntılı bilgilerin yer aldığı Başarısızlık nedeni bölümünü görebilirsiniz.

    Başarısız tahmin seçildi.

    Bu durumda, web sitesinde /next3.html sayfası olmadığından önceden işleme başarısız oldu.

  4. Kurallar bölümünü açın ve kural grubunu en altta 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 Tahmin kurallarında hata ayıklama başlıklı makaleyi inceleyin.

Push mesajlaşma

Bir kullanıcıya push bildirimi göstermek için hizmet çalışanı'nın önce Push Message API'yi kullanarak bir sunucudan veri alması 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 kaydetmek için:

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

    Push Mesajlaşma sekmesi

  3. Demo sayfasında Anlık bildirimleri etkinleştir'i açın, istendiğinde İzin ver'i tıklayın, bir mesaj yazıp gönderin. DevTools, push bildirimi etkinliklerini tabloya kaydeder.

    Push Messaging sekmesindeki etkinliklerin günlüğü.

  4. Ayrıntılarını tablonun altındaki alanda görüntülemek için bir etkinliği tıklayın.

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

Reporting API

Bazı hatalar yalnızca üretimde oluşur. Gerçek kullanıcılar, ağlar ve cihazlar işleri değiştirdiği için bunları yerel olarak veya geliştirme sırasında asla 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ğiniz bağlantılardan daha yavaş olabilir. Siteniz, siz farkında olmadan yavaş ağlarda Chrome'un document.write() nedeniyle kullanıcılar için bozulmaya başlıyor. Alternatif olarak, kod tabanınızın kullandığı, desteği sonlandırılmış veya yakında desteği sonlandırılacak API'leri de takip edebilirsiniz.

Reporting API, kullanımdan kaldı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ı Web uygulamanızı Reporting API ile 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 simgesine gidin, Deneysel Web Platformu özellikleri'ni Etkin olarak ayarlayın ve Chrome'u yeniden başlatın.
  2. Geliştirici Araçları'nı açın ve Application (Uygulama) > Background services (Arka plan hizmetleri) > Reporting API'ye (Raporlama API'si) gidin.

    Reporting API'de listelenen raporlar

Raporlama API'si sekmesi üç bölüme ayrılmıştır:

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

Rapor durumu

Durum sütununda, Chrome'un raporu başarıyla gönderip göndermediği, göndermek üzere olup olmadığı veya göndermeyi başarısız olup olmadığı gösterilir.

Durum Açıklama
Success Tarayıcı raporu göndermiş ve uç nokta, başarılı sonuç koduyla (200 veya başka bir başarılı sonuç kodu 2xx) yanıt vermiştir.
Pending Tarayıcı, raporu göndermeye çalışıyor.
Queued Rapor oluşturulmuş ancak tarayıcı henüz göndermeye çalışmıyor. Bir rapor, şu iki durumdan birinde Queued olarak görünür:
  • Rapor yenidir ve tarayıcı, göndermeyi denemeden önce başka raporların gelip gelmeyeceğini beklemektedir.
  • Rapor yeni değil. Tarayıcı bu raporu daha önce göndermeyi denedi ve başarısız oldu. Tekrar denemeden önce bekliyor.
MarkedForRemoval Tarayıcı bir süre (Queued) yeniden denedikten sonra raporu göndermeyi durdurdu ve kısa süre içinde gönderilecek raporlar listesinden kaldıracak.

Raporlar, başarıyla gönderilip gönderilmediklerine bakılmaksızın bir süre sonra kaldırılır.

Cihaza bağlı oturumlar

Cihaza Bağlı Oturum Kimlik Bilgileri (DBSC), kullanıcı aracılarının güvenli bir şekilde depolanan özel anahtarın sahipliğini onaylamasına izin vererek çerez hırsızlığını önlemeyi amaçlayan bir Web API'si ve kullanıcı aracıları ile sunucular arasındaki bir protokoldür.

Cihaza bağlı oturumları, tanımlarını ve etkinliklerini görüntülemek için:

  1. DBSC kullanan bir sayfada Geliştirici Araçları'nı açın.
  2. Uygulama > Arka plan hizmetleri > Cihaza bağlı oturumlar'a gidin.
  3. Sol taraftaki kenar çubuğunda, etkin oturumlarını görüntülemek için bir siteyi genişletin. Tanımını görüntülemek için bir oturum seçin.

    Cihaza bağlı oturumlar sekmesi.

  4. Etkinlikler tablosunda DBSC etkinlikleri (oluşturma, yenileme, sorgulama ve sonlandırma) günlüğe kaydedilir. Sayfa gezinmeleri sırasında etkinlik listesini korumak için check_box Günlüğü koru'yu işaretleyin.

  5. Etkinlikler tablosunda, ayrıntılarını görüntülemek için bir etkinlik seçin.

  6. Bir etkinlik başarısız olursa Sonuç sütununda Error mesajını görürsünüz. Ayrıntılarını, yanıt hata kodunu ve başarısızlık nedenini görmek için başarısız olan etkinliği seçin.

    Hata etkinliği seçilmiş "Cihaza bağlı oturumlar" sekmesi.

Kenar çubuğundaki Cihaza bağlı oturumlar bölümünde aşağıdaki sorunlar vurgulanabilir:

  • Sonlandırılan oturumlar: Kenar çubuğunda üstü çizili olarak ve devre dışı veritabanı simgesiyle gösterilir.
  • Başarısız olan etkinlikler: Uyarı simgesiyle vurgulanır. Oturum yok öğesi, bir siteye bağlanmış ancak bilinen bir oturuma bağlanmamış başarısız etkinlikleri yakalar.