Kaydol

Merhaba Sevgili Floodlar.com Kullanıcısı, Web sitemizde geçirdiğiniz zaman ve bu büyüleyici flood evrenine katılımınız için teşekkür ederiz. Floodların geniş dünyasıyla dolu deneyiminizi daha fazla keşfetmek için, web sitemizi sınırsız olarak kullanabilmeniz adına giriş yapmanız gerekmektedir.

Oturum aç

Merhaba Floodlar.com Kullanıcısı, İlk üç sayfayı tamamladınız, tebrikler! Ancak, floodların devamını görmek ve daha fazla interaktif deneyim yaşamak için giriş yapmanız gerekiyor. Hesabınız yoksa, hızlıca oluşturabilirsiniz. Sınırsız floodlar ve etkileşimler sizleri bekliyor. Giriş yapmayı unutmayın!

Şifremi hatırlamıyorum

Şifreniz mi unuttunuz? Endişelenmeyin! Lütfen kayıtlı e-posta adresinizi giriniz. Size bir bağlantı göndereceğiz ve bu link üzerinden yeni bir şifre oluşturabileceksiniz.

Fil Necati Masonlar Locası Subreddit Adı Nedir? Cevap: ( N31 )

Üzgünüz, flood girme izniniz yok, Flood girmek için giriş yapmalısınız.

Lütfen bu Floodun neden bildirilmesi gerektiğini düşündüğünüzü kısaca açıklayın.

Lütfen bu cevabın neden bildirilmesi gerektiğini kısaca açıklayın.

Lütfen bu kullanıcının neden rapor edilmesi gerektiğini düşündüğünüzü kısaca açıklayın.

Mobil Uygulamada Açın

Güncel Floodlar En sonuncu Nesne

Bir hizmet çalışanında aralık isteklerini işleme

Bir hizmet çalışanında aralık isteklerini işleme

Bazı HTTP istekleri şunları içerir: Range: başlık, tam kaynağın yalnızca bir kısmının döndürülmesi gerektiğini belirtir. Uzak dosyanın tamamını bir kerede istemek yerine, daha küçük ortam parçalarının isteğe bağlı olarak yüklenmesine izin vermek için ses veya video içeriği akışı için yaygın olarak kullanılırlar.

A hizmet çalışanı web uygulamanız ile ağ arasında yer alan, potansiyel olarak giden ağ isteklerini yakalayan ve bunlar için yanıtlar oluşturan JavaScript kodudur.

Tarihsel olarak, menzil talepleri ve servis çalışanları birlikte iyi oynamadı. Servis çalışanınızda kötü sonuçlarla karşılaşmamak için özel adımlar atmak gerekli olmuştur. Neyse ki, bu değişmeye başlıyor. Doğru davranışı sergileyen tarayıcılarda, aralık istekleri bir hizmet çalışanından geçerken “yalnızca çalışır”.

Sorun nedir? #

Aşağıdaki özelliklere sahip bir servis çalışanı düşünün fetch gelen her isteği alan ve ağa ileten olay dinleyicisi:

self.addEventListener('fetch', (event) => {
// The Range: header will not pass through in
// browsers that behave incorrectly.
event.respondWith(fetch(event.request));
});

Yanlış davranışa sahip tarayıcılarda, eğer event.request dahil bir Range: başlık, bu başlık sessizce bırakılacaktır. Uzak sunucu tarafından alınan istek şunları içermez: Range: hiç. Bu, herhangi bir şeyi “kırmak” zorunda değildir, çünkü bir sunucu teknik olarak ile tam yanıt gövdesini döndürmesine izin verilir. 200 durum kodune zaman bir Range: Başlık orijinal istekte mevcut. Ancak bu, tarayıcı açısından kesinlikle gerekenden daha fazla verinin aktarılmasına neden olur.

Bu davranışın farkında olan geliştiriciler, bir davranışın varlığını açık bir şekilde kontrol ederek sorunu çözebilir. Range: başlık ve arama değil event.respondWith() eğer biri mevcutsa. Bunu yaparak, hizmet çalışanı kendisini yanıt oluşturma resminden etkili bir şekilde kaldırır ve bunun yerine aralık isteklerini nasıl koruyacağını bilen varsayılan tarayıcı ağ mantığı kullanılır.

self.addEventListener('fetch', (event) => {
// Return without calling event.respondWith()
// if this is a range request.
if (event.request.headers.has('range')) {
return;
}

event.respondWith(fetch(event.request));
});

Yine de çoğu geliştiricinin bunu yapma ihtiyacının farkında olmadığını söylemek güvenlidir. Ve net değildi Neden bu gerekli olmalı. Sonuçta, bu sınırlama nedeniyle oldu tarayıcılar yetişmek gerek temel spesifikasyondaki değişikliklerbu işlevsellik için destek ekledi.

Neler düzeltildi? #

Doğru davranan tarayıcılar, Range: başlık ne zaman event.request geçirilir fetch(). Bu, ilk örneğimdeki hizmet çalışanı kodunun uzak sunucunun Range: başlık, tarayıcı tarafından ayarlandıysa:

self.addEventListener('fetch', (event) => {
// The Range: header will pass through in browsers
// that behave correctly.
event.respondWith(fetch(event.request));
});

Sunucu artık aralık isteğini düzgün bir şekilde işleme ve kısmi bir yanıt döndürme şansı elde eder. 206 durum kodu.

Hangi tarayıcılar doğru davranıyor? #

Safari’nin son sürümleri şu özelliklere sahiptir: doğru işlevsellik. Başlangıç ​​olarak Chrome ve Edge sürüm 87doğru davranın.

Ekim 2020 itibarıyla Firefox bu davranışı henüz düzeltmedi, bu nedenle hizmet çalışanınızın kodunu üretime dağıtırken yine de hesaba katmanız gerekebilir.

“Aralık başlığını ağ isteğine dahil et” satırının kontrol edilmesi Web Platformu Testleri panosu belirli bir tarayıcının bu davranışı düzeltip düzeltmediğini doğrulamanın en iyi yoludur.

Önbellekten aralık istekleri sunmaya ne dersiniz? #

Hizmet çalışanları, bir isteği ağa iletmekten çok daha fazlasını yapabilir. Yaygın bir kullanım durumu, ses ve video dosyaları gibi kaynakları bir yerel önbellek. Bir hizmet çalışanı daha sonra, ağı tamamen atlayarak bu önbellekten gelen istekleri karşılayabilir.

Firefox da dahil olmak üzere tüm tarayıcılar, bir istek içindeki bir isteği incelemeyi destekler. fetch işleyici, varlığını kontrol ederek Range: başlık ve ardından isteği yerel olarak bir 206 cevap bu bir önbellekten gelir. Doğru şekilde ayrıştırmak için hizmet çalışanı kodu Range: başlık ve tam önbelleğe alınmış yanıtın yalnızca uygun bölümünü döndürmek, yine de önemsiz değildir.

Neyse ki, yardım isteyen geliştiriciler çalışma kutusu, yaygın hizmet çalışanı kullanım durumlarını basitleştiren bir dizi kitaplıktır. bu workbox-range-request module kısmi yanıtları doğrudan önbellekten sunmak için gerekli tüm mantığı uygular. Bu kullanım durumu için tam bir tarif bulunabilir Workbox belgelerinde.

Bu gönderideki kahraman resmi, Natalie Rhea Riggs Unsplash’ta.

İlgili Mesajlar

Yorum eklemek için giriş yapmalısınız.