Web Soketleri, Web Çalışanları ve Hizmet Çalışanları Arasındaki Fark PlatoBlockchain Veri Zekası. Dikey Arama. Ai.

Web Yuvaları, Web Çalışanları ve Hizmet Çalışanları Arasındaki Fark

Web Soketleri, Web Çalışanları, Hizmet Çalışanları… bunlar okumuş veya duymuş olabileceğiniz terimlerdir. Belki hepsi değil, ama muhtemelen en az biri. Ve ön uç geliştirmeye hakim olsanız bile, ne anlama geldiklerine bakmanız için iyi bir şans var. Ya da belki benim gibisin ve zaman zaman karıştırıyorsun. Terimlerin hepsi çok benzer görünüyor ve kulağa çok benziyor ve kafalarını karıştırmak gerçekten çok kolay.

Öyleyse, bunları birlikte parçalayalım ve Web Soketlerini, Web Çalışanlarını ve Hizmet Çalışanlarını ayırt edelim. Derin bir dalış yaptığımız ve her biriyle uygulamalı deneyim kazandığımız nükteli anlamda değil - daha çok bir dahaki sefere işaretlemek için küçük bir yardımcı gibi I tazelemeye ihtiyacın var.

Hızlı referans

Hızlı bir karşılaştırma ve karşılaştırma için üst düzey bir genel bakışla başlayacağız.

Özellikler(Hazırlık aşamasında) Ne olduğunu
Web Soketi Olaylar tarafından tetiklenen tek bir bağlantı üzerinden mesaj göndermek ve almak için tarayıcı ile sunucu arasında açık ve kalıcı bir iki yönlü bağlantı kurar.
Web Çalışanı Komut dosyalarının ana ileti dizisinde birbirini engellemesini önlemek için komut dosyalarının arka planda ayrı ileti dizilerinde çalışmasına izin verir.
Servis Çalışanı Çevrimdışı durumlarda bile tarayıcı ve sunucu arasındaki ağ isteklerini işlemek için ara yazılım görevi gören bir arka plan hizmeti oluşturan bir tür Web Çalışanı.

Web Soketleri

Web Soketi iki yönlü bir iletişim protokolüdür. Bunu, siz ve arkadaşınız arasında, biriniz kapatmaya karar vermedikçe bitmeyecek devam eden bir arama gibi düşünün. Tek fark, siz tarayıcısınız ve arkadaşınız sunucudur. İstemci, sunucuya bir istek gönderir ve sunucu, istemcinin isteğini işleyerek yanıt verir ve bunun tersi de geçerlidir.

Web Yuvaları, Web Çalışanları ve Hizmet Çalışanları Arasındaki Fark

İletişim olaylara dayalıdır. A WebSocket nesne kurulur ve bir sunucuya bağlanır ve sunucu arasındaki mesajlar onları gönderen ve alan olayları tetikler.

Bu, ilk bağlantı yapıldığında, bir bağlantının başlatıldığı ve istemci veya sunucu bir mesaj göndererek bağlantıyı sonlandırmayı seçene kadar canlı tutulduğu bir istemci-sunucu iletişimimiz olduğu anlamına gelir. CloseEvent. Bu, Web Sockets'i bir istemci ile bir sunucu arasında sürekli ve doğrudan iletişim gerektiren uygulamalar için ideal hale getirir. Gördüğüm çoğu tanım, sohbet uygulamalarını yaygın bir kullanım durumu olarak adlandırıyor - bir mesaj yazarsınız, sunucuya gönderirsiniz, bir olayı tetiklersiniz ve sunucu, sunucuya tekrar tekrar ping atmak zorunda kalmadan verilerle yanıt verir.

Bu senaryoyu düşünün: Dışarı çıkıyorsunuz ve Google Haritalar'ı açmaya karar verdiniz. Muhtemelen Google Haritalar'ın nasıl çalıştığını zaten biliyorsunuzdur, ancak bilmiyorsanız, uygulamaya bağlandıktan sonra konumunuzu otomatik olarak bulur ve nereye giderseniz gidin onu takip eder. Bu bağlantı canlı olduğu sürece konumunuzu takip etmek için gerçek zamanlı veri iletimini kullanır. Bu, verileri güncel tutmak için tarayıcı ve sunucu arasında kalıcı, iki yönlü bir konuşma oluşturan bir Web Soketidir. Gerçek zamanlı skorları olan bir spor uygulaması da Web Soketlerini bu şekilde kullanabilir.

Web Yuvaları ve Web Çalışanları (ve göreceğimiz gibi, Hizmet Çalışanları) arasındaki en büyük fark, DOM'a doğrudan erişime sahip olmalarıdır. Web Çalışanları (ve Hizmet Çalışanları) ayrı iş parçacıklarında çalışırken, Web Soketleri ana iş parçacığının bir parçasıdır ve bu onlara DOM'u manipüle etme yeteneği verir.

Aşağıdakiler dahil, Web Soketi bağlantılarının kurulmasına ve sürdürülmesine yardımcı olacak araçlar ve hizmetler vardır: SoketKümesi, Async API'si, kovboy, WebSocket Kralı, Kanallar, ve Goril WebSocket. MDN'de bir diğer hizmetleri içeren çalışan liste.

Daha fazla Web Yuvası bilgisi

Web Çalışanları

DOM'da değişiklikler yaparken aynı zamanda bir dizi karmaşık hesaplama yapmanız gereken bir senaryo düşünün. JavaScript, tek iş parçacıklı bir uygulamadır ve birden fazla komut dosyası çalıştırmak, değişiklik yapmaya çalıştığınız kullanıcı arabirimini ve yapılan karmaşık hesaplamayı bozabilir.

Web Çalışanlarının devreye girdiği yer burasıdır.

Web Çalışanları, betiklerin ana iş parçacığında birbirini engellemesini önlemek için betiklerin arka planda ayrı iş parçacıklarında çalışmasına izin verir. Bu işlemler, kullanıcı arabirimini işlemeden etkilemeden arka planda ayrı iş parçacıklarında gerçekleştirilebildiğinden, yoğun işlemler gerektiren uygulamaların performansını artırmak için onları harika kılar. Ancak DOM'a erişmede o kadar iyi değiller çünkü Web Sockets'in aksine, bir web çalışanı ana iş parçacığının dışında kendi iş parçacığında çalışır.

Bir Web Çalışanı, bir komut dosyasını kullanarak çalıştıran bir nesnedir. Worker görevleri yerine getirmek için itiraz. İşçiler hakkında konuştuğumuzda, genellikle üç türden birine girerler:

  • Özel Çalışanlar: Özel bir çalışana yalnızca onu çağıran komut dosyası erişebilir. Yine de, çoklu iş parçacıklı betikleri gibi tipik bir web çalışanının görevlerini yürütür.
  • Paylaşılan İşçiler: Paylaşılan bir çalışan, adanmış bir çalışanın tersidir. Birden çok komut dosyasıyla erişilebilir ve çalışanla aynı etki alanında bulundukları sürece bir web çalışanının gerçekleştirdiği herhangi bir görevi pratik olarak gerçekleştirebilir.
  • Servis Çalışanları: Bir hizmet çalışanı, bir uygulama, tarayıcı ve sunucu arasında bir ağ proxy'si görevi görerek, ağ çevrimdışı olduğunda bile komut dosyalarının çalışmasına izin verir. Buna bir sonraki bölümde geleceğiz.

Daha fazla Web Çalışanı bilgisi

Hizmet Görevlileri

Geliştiriciler olarak üzerinde kontrolümüz olmayan bazı şeyler var ve bunlardan biri de kullanıcının ağ bağlantısı. Bir kullanıcı hangi ağa bağlanırsa bağlansın, neyse odur. Uygulamalarımızı, kullanılan herhangi bir bağlantıda ellerinden gelenin en iyisini yapacak şekilde optimize etmek için yalnızca elimizden gelenin en iyisini yapabiliriz.

Hizmet Çalışanları, bir uygulamanın performansını aşamalı olarak geliştirmek için yapabileceğimiz şeylerden biridir. Uygulama, tarayıcı ve sunucu arasında bir hizmet çalışanı bulunur ve tahmin ettiğiniz gibi Web Workers sayesinde arka planda ayrı bir iş parçacığında çalışan güvenli bir bağlantı sağlar. Son bölümde öğrendiğimiz gibi, Hizmet Çalışanları üç tür Web Çalışanından biridir.

Öyleyse, uygulamanız ile kullanıcının tarayıcısı arasında oturan bir hizmet çalışanına neden ihtiyacınız olsun ki? Yine, kullanıcının ağ bağlantısı üzerinde kontrolümüz yoktur. Bağlantının bilinmeyen bir nedenle kesildiğini varsayalım. Bu, tarayıcı ile sunucu arasındaki iletişimi keserek verilerin ileri geri iletilmesini engeller. Bir hizmet çalışanı, ağ bağlantısı kesildikten sonra bile istekleri yakalayabilen ve görevleri yürütebilen zaman uyumsuz bir proxy gibi davranarak bağlantıyı sürdürür.

İstemci etiketli bir tarayıcı simgesi ile sunucu etiketli bir bulut simgesi arasında, Hizmet Çalışanı etiketli bir dişli çark simgesi.
Web Yuvaları, Web Çalışanları ve Hizmet Çalışanları Arasındaki Fark

Bu, genellikle şu şekilde adlandırılan şeyin ana itici gücüdür: "önce çevrimdışı" geliştirme. Varlıkları ağ yerine yerel önbellekte depolayabilir, kullanıcı çevrimdışı olursa kritik bilgileri sağlayabilir, kullanıcının ihtiyaç duyduğu anda hazır olmaları için şeyleri önceden getirebilir ve ağ hatalarına yanıt olarak geri dönüşler sağlayabiliriz. Tamamen eşzamansızdırlar, ancak Web Yuvalarının aksine, kendi iş parçacıklarında çalıştıkları için DOM'a erişimleri yoktur.

Hizmet Çalışanları hakkında bilinmesi gereken diğer büyük şey, uygulamanızdan gelen her bir isteği ve yanıtı yakalamalarıdır. Bu nedenle, bazı güvenlik çıkarımları vardır, en önemlisi aynı kaynak politikasını takip etmeleridir. Yani bu, bir CDN veya üçüncü taraf hizmetten bir hizmet çalışanı çalıştırmayacağınız anlamına gelir. Ayrıca güvenli bir HTTPS bağlantısı gerektirirler, bu da onların çalışması için bir SSL sertifikasına ihtiyacınız olacağı anlamına gelir.

Daha fazla Servis Çalışanı bilgisi

Tamamlayan

Bu, Web Soketleri, Web Çalışanları ve Hizmet Çalışanları arasındaki farkların (ve benzerliklerin) süper üst düzey bir açıklamasıdır. Yine, terminoloji ve kavramlar birbirini karıştıracak kadar benzerdir, ancak umarız bu, onları nasıl ayırt edeceğiniz konusunda size daha iyi bir fikir verir.

İşleri hızlı bir referans tablosuyla başlattık. İşte aynı şey, ancak daha kalın karşılaştırmalar yapmak için biraz genişletildi.

Özellikler(Hazırlık aşamasında) Ne olduğunu Çok iş parçacıklı mı? HTTPS'mi? DOM erişimi?
Web Soketi Olaylar tarafından tetiklenen tek bir bağlantı üzerinden mesaj göndermek ve almak için tarayıcı ile sunucu arasında açık ve kalıcı bir iki yönlü bağlantı kurar. Ana iş parçacığı üzerinde çalışır Gerekli değil Evet
Web Çalışanı Komut dosyalarının ana ileti dizisinde birbirini engellemesini önlemek için komut dosyalarının arka planda ayrı ileti dizilerinde çalışmasına izin verir. Ayrı bir iş parçacığında çalışır gereklidir Yok hayır
Servis Çalışanı Çevrimdışı durumlarda bile tarayıcı ve sunucu arasındaki ağ isteklerini işlemek için ara yazılım görevi gören bir arka plan hizmeti oluşturan bir tür Web Çalışanı. Ayrı bir iş parçacığında çalışır gereklidir Yok hayır

Zaman Damgası:

Den fazla CSS Püf Noktaları