çalışma kutusu-çekirdek

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 önbellekleri birbirinin çatış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 de kullanmaları önerilmiştir. 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,
)

Parametreler

İadeler

  • Promise<void>

CacheDidUpdateCallbackParam

Özellikler

  • cacheName

    dize

  • etkinlik

    ExtendableEvent

  • newResponse

    Yanıt

  • oldResponse

    Yanıt isteğe bağlı

  • istek

    İstek

  • durum

    MapLikeObject isteğe bağlı

CachedResponseWillBeUsedCallback()

workbox-core.CachedResponseWillBeUsedCallback(
  param: CachedResponseWillBeUsedCallbackParam,
)

İadeler

  • Promise<void | Response>

CachedResponseWillBeUsedCallbackParam

Özellikler

  • cacheName

    dize

  • cachedResponse

    Yanıt isteğe bağlı

  • etkinlik

    ExtendableEvent

  • matchOptions

    CacheQueryOptions isteğe bağlı

  • istek

    İstek

  • durum

    MapLikeObject isteğe bağlı

CacheKeyWillBeUsedCallback()

workbox-core.CacheKeyWillBeUsedCallback(
  param: CacheKeyWillBeUsedCallbackParam,
)

İadeler

  • Promise<string | Request>

CacheKeyWillBeUsedCallbackParam

Özellikler

  • etkinlik

    ExtendableEvent

  • mod

    dize

  • params

    herhangi bir isteğe bağlı

  • istek

    İstek

  • durum

    MapLikeObject isteğe bağlı

CacheWillUpdateCallback()

workbox-core.CacheWillUpdateCallback(
  param: CacheWillUpdateCallbackParam,
)

Parametreler

İadeler

  • Promise<void | Response>

CacheWillUpdateCallbackParam

Özellikler

  • etkinlik

    ExtendableEvent

  • istek

    İstek

  • gönderin

    Yanıt

  • durum

    MapLikeObject isteğe bağlı

FetchDidFailCallback()

workbox-core.FetchDidFailCallback(
  param: FetchDidFailCallbackParam,
)

Parametreler

İadeler

  • Promise<void>

FetchDidFailCallbackParam

Özellikler

  • hata

    Hata

  • etkinlik

    ExtendableEvent

  • originalRequest

    İstek

  • istek

    İstek

  • durum

    MapLikeObject isteğe bağlı

FetchDidSucceedCallback()

workbox-core.FetchDidSucceedCallback(
  param: FetchDidSucceedCallbackParam,
)

Parametreler

İadeler

  • Promise<Response>

FetchDidSucceedCallbackParam

Özellikler

  • etkinlik

    ExtendableEvent

  • istek

    İstek

  • gönderin

    Yanıt

  • durum

    MapLikeObject isteğe bağlı

HandlerCallbackOptions

HandlerDidCompleteCallback()

workbox-core.HandlerDidCompleteCallback(
  param: HandlerDidCompleteCallbackParam,
)

İadeler

  • Promise<void>

HandlerDidCompleteCallbackParam

Özellikler

  • hata

    Hata isteğe bağlı

  • etkinlik

    ExtendableEvent

  • istek

    İstek

  • gönderin

    Yanıt isteğe bağlı

  • durum

    MapLikeObject isteğe bağlı

HandlerDidErrorCallback()

workbox-core.HandlerDidErrorCallback(
  param: HandlerDidErrorCallbackParam,
)

Parametreler

İadeler

  • Promise<Response>

HandlerDidErrorCallbackParam

Özellikler

  • hata

    Hata

  • etkinlik

    ExtendableEvent

  • istek

    İstek

  • durum

    MapLikeObject isteğe bağlı

HandlerDidRespondCallback()

workbox-core.HandlerDidRespondCallback(
  param: HandlerDidRespondCallbackParam,
)

Parametreler

İadeler

  • Promise<void>

HandlerDidRespondCallbackParam

Özellikler

  • etkinlik

    ExtendableEvent

  • istek

    İstek

  • gönderin

    Yanıt isteğe bağlı

  • durum

    MapLikeObject isteğe bağlı

HandlerWillRespondCallback()

workbox-core.HandlerWillRespondCallback(
  param: HandlerWillRespondCallbackParam,
)

İadeler

  • Promise<Response>

HandlerWillRespondCallbackParam

Özellikler

  • etkinlik

    ExtendableEvent

  • istek

    İstek

  • gönderin

    Yanıt

  • durum

    MapLikeObject isteğe bağlı

HandlerWillStartCallback()

workbox-core.HandlerWillStartCallback(
  param: HandlerWillStartCallbackParam,
)

Parametreler

İadeler

  • Promise<void>

HandlerWillStartCallbackParam

Özellikler

  • etkinlik

    ExtendableEvent

  • istek

    İstek

  • durum

    MapLikeObject isteğe bağlı

ManualHandlerCallback()

workbox-core.ManualHandlerCallback(
  options: ManualHandlerCallbackOptions,
)

"handler" geri çağırma işlevi, bir Router, RouteMatchCallback aracılığıyla bir Route URL'si/isteğiyle 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

İadeler

  • Promise<Response>

ManualHandlerCallbackOptions

ManualHandlerCallback işlevine iletilen seçenekler.

Özellikler

  • etkinlik

    ExtendableEvent

  • istek

    dize | İstek

MapLikeObject

PluginState

Şu anda düz bir MapLikeObject kullanıyoruz ancak gelecekte bu özelliği genişletebilir/kısıtlayabiliriz.

RequestWillFetchCallback()

workbox-core.RequestWillFetchCallback(
  param: RequestWillFetchCallbackParam,
)

Parametreler

İadeler

  • Promise<Request>

RequestWillFetchCallbackParam

Özellikler

  • etkinlik

    ExtendableEvent

  • istek

    İstek

  • durum

    MapLikeObject 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,
)

"handler" geri çağırma işlevi, bir Router, RouteMatchCallback aracılığıyla bir Route URL'si/isteğiyle 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

İadeler

  • Promise<Response>

RouteHandlerCallbackOptions

RouteHandlerCallback işlevine iletilen seçenekler.

Özellikler

  • etkinlik

    ExtendableEvent

  • params

    string[] | MapLikeObject isteğe bağlı

  • istek

    İstek

  • url

    URL

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

RouteMatchCallback()

workbox-core.RouteMatchCallback(
  options: RouteMatchCallbackOptions,
)

"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 oluştuğunda event nesnesi de sağlanır. Ancak eşleşme geri çağırma işlevi bir getirme etkinliğinin dışında çağrılabildiğinden, eşleştirme 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

İadeler

  • herhangi

RouteMatchCallbackOptions

RouteMatchCallback işlevine iletilen seçenekler.

Özellikler

  • etkinlik

    ExtendableEvent

  • istek

    İstek

  • sameOrigin

    boolean

  • url

    URL

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

WorkboxPluginCallbackParam

Özellikler

cacheNames

Workbox tarafından kullanılan mevcut önbelleğe alma adlarını ve ön/son ek bilgilerini 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

  • googleAnalytics

    dize

  • önbelleğe alma

    dize

  • önek

    dize

  • çalışma zamanı

    dize

  • sonek

    dize

Yöntemler

clientsClaim()

workbox-core.clientsClaim()

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,
)

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önderin

    Yanıt

  • değiştirici

    işlev isteğe bağlı

    modifier parametresi şu şekilde görünür:

    (responseInit: ResponseInit) => ResponseInit

    • responseInit

      ResponseInit

    • returns

      ResponseInit

İadeler

  • Promise<Response>

registerQuotaErrorCallback()

workbox-core.registerQuotaErrorCallback(
  callback: Function,
)

Kota hatası varsa yürütülecek bir işlevi quotaErrorCallbacks grubuna ekler.

Parametreler

  • geri çağırma

    İşlev

setCacheNameDetails()

workbox-core.setCacheNameDetails(
  details: PartialCacheNameDetails,
)

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ılar

    PartialCacheNameDetails

skipWaiting()

workbox-core.skipWaiting()

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.