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ı, 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 geri sıçrama izlemeyi azaltma denemesi, geri 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 Application > Background services > Bounce tracking mitigations'a (Uygulama > Arka plan hizmetleri > Sıçramalı izlemeyi azaltma) 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 Mesajı 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ükleme olanağı 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şturma sürecinde oluşturur.

Tahmine dayalı yüklemelerde hata ayıklama işlemini Application (Uygulama) > Background services (Arka plan hizmetleri) > Speculative loads (Tahmine dayalı yüklemeler) bölümünde yapabilirsiniz. Bu bölümde üç görünüm bulunur:

  • Tahmine dayalı yüklemeler. Geçerli sayfa, geçerli URL, geçerli sayfanın tahmine dayalı olarak yüklemeye çalıştığı sayfalar ve bunların durumlarıyla ilgili tahmine dayalı durumu 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üklemelerinde 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 tahmine dayalı 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 Başarısızlık nedeni'ni ve alt kısımdaki ayrıntılı bilgileri görün.

    Başarısız olan tahmin seçilir.

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

  4. İsteğe bağlı olarak, Tahminler sekmesindeki tabloyu filtrelemek için üstteki filtre çubuğuna serbestçe bir değer yazın veya anahtarlı filtrelerden birini kullanın: url:VALUE, action:VALUE ya da action:VALUE.

    Tahminler tablosu filtre çubuğu.

  5. 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 meydana gelir. Gerçek kullanıcılar, ağlar ve cihazlar durumu 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() müdahalesi 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. Geliştirici Araçları'nı açın ve Uygulama > Arka plan hizmetleri > Raporlama API'si'ne gidin.

    Raporlama API'sinde 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 Gövdesi
  • 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 bakışı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ı bir kodla (200 veya başka bir başarılı yanıt 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 daha fazla raporun 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 yakında 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.

Kilitlenme raporu bağlamı

Reporting API ile web sitenizi crash-reporting veya default sunucu uç noktasına kilitlenmeleri bildirecek şekilde yapılandırabilirsiniz. Kilitlenme raporu, mevcut üst düzey tarama bağlamı için anahtar/değer çiftlerinde rastgele kilitlenmeyle ilgili verileri kaydetmenize olanak tanıyan bir CrashReportContext arayüzü içerebilir.

Uygulama > Arka plan hizmetleri > Reporting API > Kilitlenme Raporu Bağlamı sekmesinde kilitlenme bağlamı verilerinizi inceleyebilir ve üstteki filtre çubuğunda anahtara veya değere göre filtreleyebilirsiniz.

Kilitlenme Raporu Bağlamı sekmesi

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. Ayrıntılarını görüntülemek için Etkinlikler tablosunda 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şken "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 metin 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.