Maksymalna wydajność IndexedDB z zasobnikami na dane

Zespół Chrome wprowadził szereg ulepszeń poprawiających wydajność implementacji IndexedDB (IDB). Jednym z takich ulepszeń jest przeniesienie bazy danych każdej instancji w osobnej sekwencji (można pomyśleć o tym mniej więcej jako oddzielny wątek). Oznacza to, że równoczesne używanie IDB jest i z różnych witryn. Ten post zawiera wszystkie szczegółowo opisać, jak wykorzystać tę zmianę, który jest dostępny od wersji Chrome 126.

W różnych witrynach

Jeśli używasz IDB w różnych witrynach, nie musisz nic robić. Po tym miało miejsce przeniesienie na poziomie przeglądarki, a magazyn kopii zapasowej każdej instancji IDB został przeniesione do oddzielnej sekwencji, – wzrost skuteczności jest uzależniony od Ciebie. wszystko.

Ta sama witryna

Aby zwiększyć wydajność w przypadku korzystania z tej samej witryny, musisz oddzielić jak używać IDB w różnych instancjach, zasobników na dane. Następujący przykładowy kod jak to działa:

const request = indexedDB.open('main', 1);
request.onsuccess = (event) => {
  /* Do stuff with the main instance. */
};

// By default, just use the regular IDB instance.
let idb = indexedDB;
// Open a separate storage bucket if the API is supported.
if ('storageBuckets' in navigator) {
  const bucket = await navigator.storageBuckets.open('logs-bucket');
  // Get access to the storage bucket's IDB instance.
  idb = bucket.indexedDB;
}
const bucketRequest = idb.open('logs', 1);
bucketRequest.onsuccess = (event) => {
  /* Do stuff with the separate instance. */
};

Obsługa przeglądarek

Omawiany w tym poście wzrost wydajności jest stopniowym ulepszeniem, z którego możesz korzystać, gdy interfejs Storage Buckets API jest obsługiwany w przeglądarce. (z Chrome 122) oraz po fragmentach instancji IDB z Chrome 126.

Prezentacja

Obejrzyj prezentację tej funkcji na Błąd. Kod źródłowy pokazuje z poprzedniego fragmentu kodu. Postępuj dokładnie zgodnie z instrukcjami w wersji demonstracyjnej. Jeśli sprawdzisz instancje IDB w Chrome Możesz zobaczyć użyty zasobnik na dane w sekcji Nazwa zasobnika, zaznaczonym czerwonym polem na następującym zrzucie ekranu.

Narzędzia deweloperskie w Chrome sprawdzają sekcję IndexedDB. Istnieją 2 bazy danych logów: nazwa zasobnika na dane

Podziękowania

Ten post został sprawdzony przez: Evan Stade i Rachel Andrew