React JS'de servis çalışanı nedir


93

Bir react uygulaması oluştururken, hizmet çalışanı varsayılan olarak çağrılır. Neden servis çalışanı kullanılır? Varsayılan çağırmanın nedeni nedir?

Yanıtlar:


105

Başvurunuz için bir servis görevlisine ihtiyacınız olmayabilir. Create-react-app ile bir proje oluşturuyorsanız, varsayılan olarak çağrılır

Servis çalışanları bu makalede iyi açıklanmıştır . Ondan özetlemek için

A service worker, tarayıcınızın bir web sayfasından ayrı olarak arka planda çalıştırdığı ve bir web sayfası veya kullanıcı etkileşimi gerektirmeyen özelliklerin kapısını açan bir komut dosyasıdır. Bugün, onlar zaten gibi özellikler içeren push notificationsve background syncve sahip ability to intercept and handle network requestsdahil programmatically managing a cache of responses.

Gelecekte servis çalışanları, periodic syncveya gibi başka şeyleri destekleyebilir geofencing.

Bu PR'ye göre uygulama oluşturma-tepki verme

Service workerscreate-react-app ile tanıtıldı SWPrecacheWebpackPlugin.

Önbellek stratejisine sahip bir sunucu çalışanı kullanmak, ağ artık gezinme isteklerini yerine getirmek için bir darboğaz oluşturmadığından performans avantajları sunar. Ancak bu, geliştiricilerin (ve kullanıcıların) yalnızca bir sayfaya yapılan "N + 1" ziyaretinde dağıtılan güncellemeleri göreceği anlamına gelir, çünkü önceden önbelleğe alınmış kaynaklar arka planda güncellenir.

Çağrı register service worker, yeni uygulamalarda varsayılan olarak etkindir, ancak her zaman kaldırabilir ve ardından normal davranışa geri dönebilirsiniz.


2
şimdilik oluşturulan reactjs uygulamasının sw kodu var ancak yorum yazma işlevinin çağrılmadığını belirtir. Öyleyse soru, onu nereden arayabilirim?
Daneel Yaitskov

@ DaneelS.Yaitskov, onu üst düzey bir index.js dosyası veya benzeri bir dosyada çağırabilirsiniz.
Siddhartha

1
@Siddhartha, somut bir örnek sunacak kadar nazik olabilir misiniz ve belki yanıtı güncelleyebilir misiniz? Bunu çok yararlı buldum ama son detayları kaçırıyorum. Teşekkürler.
Ted Stresen-Reuter

17

Basit ve sade bir deyişle, tarayıcının arka planda çalıştığı ve web sayfaları veya DOM ile hiçbir ilişkisi olmayan ve kullanıma hazır özellikler sağlayan bir betiktir. Ayrıca varlıklarınızı ve diğer dosyalarınızı önbelleğe almanıza yardımcı olur, böylece kullanıcı çevrimdışıyken veya ağda yavaş olduğunda.

Bu özelliklerden bazıları proxy ağ istekleri, push bildirimleri ve arka planda eşitlemedir. Servis çalışanları, kullanıcının zengin bir çevrimdışı deneyime sahip olmasını sağlar.

Servis çalışanını, istemci ile sunucu arasında oturan biri olarak düşünebilirsiniz ve sunucuya yapılan tüm istekler servis çalışanından geçer. Temel olarak, bir aracı. Tüm talep servis çalışanından geçtiğinden, bu talepleri anında yakalayabilir.

görüntü açıklamasını buraya girin


6

Hizmet Çalışanlarının dikkate alması gereken 2 önemli noktayı eklemek istiyorum:

  1. Hizmet Çalışanları HTTPS'ye ihtiyaç duyar. Ancak yerel testi etkinleştirmek için bu kısıtlama geçerli değildir localhost. Bu, bir Hizmet Çalışanı web uygulaması ile sunucu arasında ortada bir adam gibi davrandığından güvenlik nedenlerinden dolayıdır .

  2. İle App tepki oluşturma çalıştırırken örneğin, Servis Çalışanı sadece üretim ortamında etkindir npm run build.

Service Worker, Progressive Web App geliştirmeye yardımcı olmak için burada . Create React App bağlamında bununla ilgili iyi bir kaynak buradaki web sitelerinde bulunabilir .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.