Modüler olarak tasarlanan Workbox, geliştiricilerin her şeyi tek bir dosyada indirmeye zorlanmadan kullanmak istedikleri parçaları seçmelerine olanak tanır.
Ancak modüller arasında örtüşme vardır. Örneğin, her modülün konsolla etkileşime geçmesi, anlamlı hatalar vermesi ve ağ veya önbellekten yararlanması gerekir. Her modülün aynı mantığı uygulamasını önlemek için workbox-core, her modülün kullandığı bu ortak kodu içerir.
Bu modül geliştiricilere bazı işlevler sunar ancak günlük düzeyleri ve önbelleğe alma dışında workbox-core, son geliştirici yerine her modüle dahili mantık sunar.
Varsayılan Önbelleğe Alma Adlarını Görüntüleme ve Değiştirme
Workbox, önbelleğini cacheNames aracılığıyla tanımlar:
import {cacheNames} from 'workbox-core';
console.log(cacheNames.precache);
console.log(cacheNames.runtime);
console.log(cacheNames.googleAnalytics);
Bu önbelleğe alma adları, ön ek, ad ve son ek biçiminde oluşturulur. Ad, önbelleğin kullanımına göre değişir.
<prefix>-<cache-id>-<suffix>
setCacheNameDetails() işlevine iletilen değerlerin tümünü veya bir kısmını değiştirerek bu varsayılan adları değiştirebilirsiniz.
import {cacheNames, setCacheNameDetails} from 'workbox-core';
setCacheNameDetails({
  prefix: 'my-app',
  suffix: 'v1',
  precache: 'install-time',
  runtime: 'run-time',
  googleAnalytics: 'ga',
});
// Will print 'my-app-install-time-v1'
console.log(cacheNames.precache);
// Will print 'my-app-run-time-v1'
console.log(cacheNames.runtime);
// Will print 'my-app-ga-v1'
console.log(cacheNames.googleAnalytics);
Ön ek ve son ekin ana kullanım alanı, Workbox'u birden fazla proje için kullanıyorsanız ve her proje için aynı yerel ana makine bağlantı noktasını kullanıyorsanız her modül için özel bir ön ek ayarlayarak önbelleklerin birbiriyle çakışmasını önlemektir.
Müşterilerin Hak Talebi
Bazı geliştiriciler yeni bir hizmet çalışanı yayınlayıp etkinleştirildikten sonra zaten açık olan web sayfalarını kontrol etmesini ister. Bu, varsayılan olarak gerçekleşmez.
Bu davranışı istiyorsanız workbox-core yardımcı bir yöntem sağlar:
import {clientsClaim} from 'workbox-core';
// This clientsClaim() should be at the top level
// of your service worker, not inside of, e.g.,
// an event handler.
clientsClaim();
workbox-core içindeki clientsClaim() yöntemi, hizmet işleyicinize otomatik olarak bir activate etkinlik dinleyicisi ekler ve bunun içinde self.clients.claim() çağrısını yapar. Mevcut hizmet işleyici etkinleşmeden önce self.clients.claim() çağrılırsa çalışma zamanında istisna oluşur. workbox-core sarmalayıcısı, bu işlevi doğru zamanda çağırmanıza yardımcı olur.
skipWaiting sarmalayıcısının desteği sonlandırıldı
Workbox 6 sürümünden önce geliştiricilerin workbox-core'daki skipWaiting()yöntemini kullanması da teşvik ediliyordu. Ancak bu yöntem, geliştiricilerin self.skipWaiting() öğesini açıkça çağırdığında elde edeceklerinin ötesinde çok az değer sunuyordu.
Eski workbox-core sarmalayıcı, self.skipWaiting()'nin çağrıldığı bir install etkinlik işleyicisi de kaydettiği için, yükleme tamamlandıktan sonra message gibi başka bir etkinlik işleyicinin içinde çağrılırsa sarmalayıcı beklendiği gibi davranmaz.
Bu nedenlerle, workbox-core'ın skipWaiting() özelliğinin desteği sonlandırılmıştır ve geliştiricilerin doğrudan self.skipWaiting()'i çağırmaya geçmesi gerekir. self.clients.claim()'ün aksine, self.skipWaiting() "yanlış" zamanda çağrılırsa istisna atmaz. Bu nedenle, self.skipWaiting()'u bir etkinlik işleyiciye sarmalamaya gerek yoktur.
Türler
CacheDidUpdateCallback()
workbox-core.CacheDidUpdateCallback(
param: CacheDidUpdateCallbackParam,
): Promise<void>
Parametreler
İadeler
- 
            Promise<void> 
CacheDidUpdateCallbackParam
Özellikler
- 
    cacheNamedize 
- 
    etkinlikExtendableEvent 
- 
    newResponseYanıt 
- 
    oldResponseYanıt isteğe bağlı 
- 
    istekİstek 
- 
    durumMapLikeObject isteğe bağlı 
CachedResponseWillBeUsedCallback()
workbox-core.CachedResponseWillBeUsedCallback(
param: CachedResponseWillBeUsedCallbackParam,
): Promise<void | Response>
Parametreler
İadeler
- 
            Promise<void | Response> 
CachedResponseWillBeUsedCallbackParam
Özellikler
- 
    cacheNamedize 
- 
    cachedResponseYanıt isteğe bağlı 
- 
    etkinlikExtendableEvent 
- 
    matchOptionsCacheQueryOptions isteğe bağlı 
- 
    istekİstek 
- 
    durumMapLikeObject isteğe bağlı 
CacheKeyWillBeUsedCallback()
workbox-core.CacheKeyWillBeUsedCallback(
param: CacheKeyWillBeUsedCallbackParam,
): Promise<string | Request>
Parametreler
İadeler
- 
            Promise<string | Request> 
CacheKeyWillBeUsedCallbackParam
Özellikler
- 
    etkinlikExtendableEvent 
- 
    moddize 
- 
    paramsherhangi bir isteğe bağlı 
- 
    istekİstek 
- 
    durumMapLikeObject isteğe bağlı 
CacheWillUpdateCallback()
workbox-core.CacheWillUpdateCallback(
param: CacheWillUpdateCallbackParam,
): Promise<void | Response>
Parametreler
İadeler
- 
            Promise<void | Response> 
CacheWillUpdateCallbackParam
Özellikler
- 
    etkinlikExtendableEvent 
- 
    istekİstek 
- 
    gönderinYanıt 
- 
    durumMapLikeObject isteğe bağlı 
FetchDidFailCallback()
workbox-core.FetchDidFailCallback(
param: FetchDidFailCallbackParam,
): Promise<void>
Parametreler
İadeler
- 
            Promise<void> 
FetchDidFailCallbackParam
Özellikler
- 
    hataHata 
- 
    etkinlikExtendableEvent 
- 
    originalRequestİstek 
- 
    istekİstek 
- 
    durumMapLikeObject isteğe bağlı 
FetchDidSucceedCallback()
workbox-core.FetchDidSucceedCallback(
param: FetchDidSucceedCallbackParam,
): Promise<Response>
Parametreler
İadeler
- 
            Promise<Response> 
FetchDidSucceedCallbackParam
Özellikler
- 
    etkinlikExtendableEvent 
- 
    istekİstek 
- 
    gönderinYanıt 
- 
    durumMapLikeObject isteğe bağlı 
HandlerCallbackOptions
HandlerDidCompleteCallback()
workbox-core.HandlerDidCompleteCallback(
param: HandlerDidCompleteCallbackParam,
): Promise<void>
Parametreler
İadeler
- 
            Promise<void> 
HandlerDidCompleteCallbackParam
Özellikler
- 
    hataHata isteğe bağlı 
- 
    etkinlikExtendableEvent 
- 
    istekİstek 
- 
    gönderinYanıt isteğe bağlı 
- 
    durumMapLikeObject isteğe bağlı 
HandlerDidErrorCallback()
workbox-core.HandlerDidErrorCallback(
param: HandlerDidErrorCallbackParam,
): Promise<Response>
Parametreler
İadeler
- 
            Promise<Response> 
HandlerDidErrorCallbackParam
Özellikler
- 
    hataHata 
- 
    etkinlikExtendableEvent 
- 
    istekİstek 
- 
    durumMapLikeObject isteğe bağlı 
HandlerDidRespondCallback()
workbox-core.HandlerDidRespondCallback(
param: HandlerDidRespondCallbackParam,
): Promise<void>
Parametreler
İadeler
- 
            Promise<void> 
HandlerDidRespondCallbackParam
Özellikler
- 
    etkinlikExtendableEvent 
- 
    istekİstek 
- 
    gönderinYanıt isteğe bağlı 
- 
    durumMapLikeObject isteğe bağlı 
HandlerWillRespondCallback()
workbox-core.HandlerWillRespondCallback(
param: HandlerWillRespondCallbackParam,
): Promise<Response>
Parametreler
İadeler
- 
            Promise<Response> 
HandlerWillRespondCallbackParam
Özellikler
- 
    etkinlikExtendableEvent 
- 
    istekİstek 
- 
    gönderinYanıt 
- 
    durumMapLikeObject isteğe bağlı 
HandlerWillStartCallback()
workbox-core.HandlerWillStartCallback(
param: HandlerWillStartCallbackParam,
): Promise<void>
Parametreler
İadeler
- 
            Promise<void> 
HandlerWillStartCallbackParam
Özellikler
- 
    etkinlikExtendableEvent 
- 
    istekİstek 
- 
    durumMapLikeObject isteğe bağlı 
ManualHandlerCallback()
workbox-core.ManualHandlerCallback(
options: ManualHandlerCallbackOptions,
): Promise<Response>
"handler" geri çağırma işlevi, bir Router, RouteMatchCallback aracılığıyla bir Route URL'si/İsteği ile eşleştiğinde çağrılır. Bu işleyici geri çağırma işlevi, Response ile çözüldüğünde Promise döndürmelidir.
RouteMatchCallback tarafından boş olmayan bir dizi veya nesne döndürülürse bu işleyicinin options.params bağımsız değişkeni olarak iletilir.
Parametreler
- 
    seçenekler
İadeler
- 
            Promise<Response> 
ManualHandlerCallbackOptions
ManualHandlerCallback işlevine iletilen seçenekler.
Özellikler
- 
    etkinlikExtendableEvent 
- 
    istekdize | İstek 
MapLikeObject
PluginState
Şu anda düz bir MapLikeObject kullanıyoruz ancak gelecekte bu özelliği genişletebilir/kısıtlayabiliriz.
Tür
RequestWillFetchCallback()
workbox-core.RequestWillFetchCallback(
param: RequestWillFetchCallbackParam,
): Promise<Request>
Parametreler
İadeler
- 
            Promise<Request> 
RequestWillFetchCallbackParam
Özellikler
- 
    etkinlikExtendableEvent 
- 
    istekİstek 
- 
    durumMapLikeObject isteğe bağlı 
RouteHandler
RouteHandlerCallback veya RouteHandlerObject.
workbox-routing içindeki rota işleyicilerini kabul eden API'lerin çoğu bu ikisini de alır.
RouteHandlerCallback()
workbox-core.RouteHandlerCallback(
options: RouteHandlerCallbackOptions,
): Promise<Response>
"handler" geri çağırma işlevi, bir Router, RouteMatchCallback aracılığıyla bir Route URL'si/İsteği ile eşleştiğinde çağrılır. Bu işleyici geri çağırma işlevi, Response ile çözüldüğünde Promise döndürmelidir.
RouteMatchCallback tarafından boş olmayan bir dizi veya nesne döndürülürse bu işleyicinin options.params bağımsız değişkeni olarak iletilir.
Parametreler
- 
    seçenekler
İadeler
- 
            Promise<Response> 
RouteHandlerCallbackOptions
RouteHandlerCallback işlevine iletilen seçenekler.
Özellikler
- 
    etkinlikExtendableEvent 
- 
    paramsMapLikeObject | string[] isteğe bağlı 
- 
    istekİstek 
- 
    urlURL 
RouteHandlerObject
RouteHandlerCallback türüne sahip bir handle yöntemi içeren nesne.
Route nesnesi, bir RouteHandlerCallback işlevi veya bu RouteHandler nesnesi kullanılarak oluşturulabilir. RouteHandler sınıfının avantajı, uzatılabilmesidir (workbox-strategies paketi tarafından yapıldığı gibi).
Özellikler
- 
    tanıtıcı
RouteMatchCallback()
workbox-core.RouteMatchCallback(
options: RouteMatchCallbackOptions,
): any
"eşleşme" geri çağırma işlevi, belirli bir URL ve istek için Route'nin geçerli olup olmadığını belirlemek için kullanılır. Müşteriden gelen bir getirme etkinliğine yanıt olarak eşleşme gerçekleştiğinde event nesnesi de sağlanır. Ancak eşleşme geri çağırma işlevi, getirme etkinliğinin dışında çağrılabildiğinden eşleşme mantığı, event nesnesinin her zaman kullanılabileceğini varsaymaz.
Eşleşme geri çağırma işlevi doğru bir değer döndürürse eşleşen rotanın RouteHandlerCallback işlevi hemen çağrılır. Döndürülen değer boş olmayan bir dizi veya nesneyse bu değer işleyicinin options.params bağımsız değişkeninde ayarlanır.
Parametreler
- 
    seçenekler
İadeler
- 
            herhangi 
RouteMatchCallbackOptions
RouteMatchCallback işlevine iletilen seçenekler.
Özellikler
- 
    etkinlikExtendableEvent 
- 
    istekİstek 
- 
    sameOriginboolean 
- 
    urlURL 
WorkboxPlugin
Getirme ve önbelleğe alma işlemleri için isteğe bağlı yaşam döngüsü geri çağırma özelliklerine sahip bir nesne.
Özellikler
- 
    cacheDidUpdateCacheDidUpdateCallback isteğe bağlı 
- 
    cacheKeyWillBeUsedCacheKeyWillBeUsedCallback isteğe bağlı 
- 
    cacheWillUpdateCacheWillUpdateCallback isteğe bağlı 
- 
    cachedResponseWillBeUsedCachedResponseWillBeUsedCallback isteğe bağlı 
- 
    fetchDidFailFetchDidFailCallback isteğe bağlı 
- 
    fetchDidSucceedFetchDidSucceedCallback isteğe bağlı 
- 
    handlerDidCompleteHandlerDidCompleteCallback isteğe bağlı 
- 
    handlerDidErrorHandlerDidErrorCallback isteğe bağlı 
- 
    handlerDidRespondHandlerDidRespondCallback isteğe bağlı 
- 
    handlerWillRespondHandlerWillRespondCallback isteğe bağlı 
- 
    handlerWillStartHandlerWillStartCallback isteğe bağlı 
- 
    requestWillFetchRequestWillFetchCallback isteğe bağlı 
WorkboxPluginCallbackParam
Özellikler
- 
    cacheDidUpdate
- 
    cacheKeyWillBeUsed
- 
    cacheWillUpdate
- 
    cachedResponseWillBeUsed
- 
    fetchDidFail
- 
    fetchDidSucceed
- 
    handlerDidComplete
- 
    handlerDidError
- 
    handlerDidRespond
- 
    handlerWillRespond
- 
    handlerWillStart
- 
    requestWillFetch
Özellikler
cacheNames
Workbox tarafından kullanılan mevcut önbelleğe alma adlarını ve ön/son eklerinin alın.
cacheNames.precache önceden önbelleğe alınan öğeler için, cacheNames.googleAnalytics workbox-google-analytics tarafından analytics.js'i depolamak için, cacheNames.runtime ise diğer her şey için kullanılır.
cacheNames.prefix, yalnızca mevcut ön ek değerini almak için kullanılabilir.
cacheNames.suffix, yalnızca mevcut son ek değerini almak için kullanılabilir.
Tür
nesne
Özellikler
- 
    googleAnalyticsdize 
- 
    önbelleğe almadize 
- 
    önekdize 
- 
    çalışma zamanıdize 
- 
    sonekdize 
Yöntemler
clientsClaim()
workbox-core.clientsClaim(): void
Hizmet çalışanı etkin hale geldikten sonra mevcut istemciler için hak talebinde bulunun. Bu genellikle skipWaiting() ile birlikte kullanılır.
copyResponse()
workbox-core.copyResponse(
response: Response,
modifier?: function,
): Promise<Response>
Geliştiricilerin bir yanıtı kopyalamasına ve headers, status veya statusText değerlerini (yapıcıdaki [ResponseInit]https://developer.mozilla.org/en-US/docs/Web/API/Response/Response#Syntax nesnesi aracılığıyla ayarlanabilen değerler) değiştirmesine olanak tanır.
Bu değerleri değiştirmek için ikinci bağımsız değişken olarak bir işlev gönderin. Bu işlev, {headers, status, statusText} yanıt özelliklerine sahip tek bir nesneyle çağrılır. Bu işlevin döndürdüğü değer, yeni Response için ResponseInit olarak kullanılır. Değerleri değiştirmek için iletilen parametreleri değiştirip döndürün veya tamamen yeni bir nesne döndürün.
Bu yöntem, CORS'un kullanılıp kullanılmadığına bakılmaksızın kasıtlı olarak aynı kaynak yanıtlarıyla sınırlıdır.
Parametreler
- 
    gönderinYanıt 
- 
    değiştiriciişlev isteğe bağlı modifierparametresi şu şekilde görünür:(responseInit: ResponseInit) => ResponseInit - 
    responseInitResponseInit 
 - 
            returnsResponseInit 
 
- 
    
İadeler
- 
            Promise<Response> 
registerQuotaErrorCallback()
workbox-core.registerQuotaErrorCallback(
callback: Function,
): void
Kota hatası varsa yürütülecek bir işlevi quotaErrorCallbacks grubuna ekler.
Parametreler
- 
    callbackİşlev 
setCacheNameDetails()
workbox-core.setCacheNameDetails(
details: PartialCacheNameDetails,
): void
Workbox paketleri tarafından kullanılan varsayılan önbellek adlarını değiştirir.
Önbellek adları <prefix>-<Cache Name>-<suffix> olarak oluşturulur.
Parametreler
- 
    ayrıntılarPartialCacheNameDetails 
skipWaiting()
workbox-core.skipWaiting(): void
Bu yöntemin desteği sonlandırılmıştır ve Workbox 7 sürümünde kaldırılacaktır.
self.skipWaiting() çağrısı eşdeğerdir ve bunun yerine kullanılmalıdır.