2016-03-14 68 views
13

Üçüncü tarafların kendi sitelerinde bir hizmet görevlisi çalıştırmasını sağlayacak bir kitaplık yazıyorum. Tüm ağ isteklerini engellemelidir, ancak isterlerse kendi hizmet görevlilerini oluşturmalarına izin vermek istiyorum.Birden fazla hizmet çalışanının aynı getirme isteğini engelleyebilir miyim?

Her iki servis çalışanının da aynı getirileri engellemesine ve aralarında bir çeşit öncelik/sipariş sağlamasına izin verebilir miyim? Alternatif olarak kullanmam gereken başka bir model var mı?

Teşekkürler

cevap

20

Hayır, yapamazsınız. Kapsam spesifik değilse, kapsam başına yalnızca bir hizmet görevlisi the latest kick the previous one out olarak kaydedilmesine izin verilir, bu durumda, istek yalnızca en spesifik tarafından yerine getirilir.

Yine de, birden çok fetch işleyicisini ekleyebilir ve hepsi de isteği işleyecektir, böylece işlevselliklerinizi ayrılmış bir komut dosyasına yazabilir ve kullanıcının hizmet çalışanının dosyanızı importScripts() aracılığıyla içermesine izin verebilirsiniz.

event.respondWith() numaralı çağrı işleyicisini eşzamanlı olarak çağırarak (aslında bu yöntemi eşzamansız olarak çağırabilirsiniz) kazanır ve aramaya çalışan diğer işleyiciler atlar.

Önceliklendirme ve koordinasyon, ara katman yazılımı gerektirir. ServiceWorkerWare veya sw-toolbox'u kontrol edebilirsiniz.

+0

"Sw-toolbox" yerine, WorkBox'un yerini middleware kavramı destekleyip desteklemediğine dair bir fikriniz var mı? –