2016-02-04 61 views
7

Web uygulamam birden fazla alt etki alanından oluşuyorsa, bu, her bir alt etki alanı için birden çok hizmet işçisine sahip olmak zorunda olduğum anlamına mı geliyor? Veya alt alan adlarında çalışan bir hizmet çalışanı alabilir miyim?Birden çok alt etki alanındaki hizmet çalışanlarını kullanma

+0

Uygulamanızın yapısıyla ilgili daha fazla ayrıntı bilmek yararlı olur. @ Mkhatib'in "web uygulamasının [birden fazla alt alandan oluştuğu] iki farklı anlamı" yanıtı ve yanıtların anlamıyla nasıl değiştiğine bakın. –

cevap

8

Her alt etki alanı farklı bir kaynak olarak kabul edilir, bu nedenle, evet, her biri için bir hizmet görevlisi kaydettirmeniz gerekir. Bu işçilerin her birinin kendi önbelleği ve kapsamı olacaktır.

2

Her alt etki alanı farklı bir kaynak olarak kabul edilir ve her bir kaynak için bir hizmet görevlisi kaydettirmeniz gerekir, ancak aynı kaynağın denetleyebileceği kapsamlar listesine Service-Worker-Allowed yanıt üstbilgisini ayarlayarak aynı çalışanı yeniden çalıştırabilirsiniz.

1

Birden çok etki alanı tarafından kastedilen, kullanıcının sitenize doğrudan www.example.com ve hello.example.com gibi birden fazla etki alanından erişebileceği anlamına gelirse, cevabın evet olduğuna inanıyorum, her biri için birden çok hizmet çalışanına gereksiniminiz vardır. Ana uygulama bir etki www.example.com servis edilir ancak statik varlıkları yüklemeye example.s3.amazonaws.com Google Yazı Tipleri yüklemek için api.example.com veya images.examples.com hatta fonts.gstatic.com gibi diğer alanlara çağrıda olabilecek veya eğer

Ancak, daha sonra tek hizmet işçisi yeterlidir. Örnekte

(function() { 
    var DEFAULT_PROFILE_IMAGE_URL = 'images/[email protected]'; 

    function profileImageRequest(request) { 
    // Load from cacheOnly to avoid redownloading the images since if the user 
    // updates their avatar its URL will change. 
    return toolbox.cacheOnly(request).catch(function() { 
     return toolbox.networkFirst(request).catch(function() { 
     return toolbox.cacheOnly(new Request(DEFAULT_PROFILE_IMAGE_URL)); 
     }); 
    }); 
    } 

    toolbox.precache([DEFAULT_PROFILE_IMAGE_URL]); 
    toolbox.router.get('/(.+)/users/avatars/(.*)', profileImageRequest, { 
    origin: /example\.s3\.amazonaws\.com/ 
    }); 
})(); 

Senin farklı varlıklar önbelleğe yardımcı olmak için Chrome ekibinden sw-toolbox kitaplığı kullanıyorum: Bu yakalamak ve önbellek (veya istekleri istediğiniz her şeyi) nasıl olduğunu.