El equipo de Chrome realizó varias mejoras relacionadas con el rendimiento en la implementación de IndexedDB (IDB). Una de estas mejoras fue trasladar el almacén de respaldo de cada instancia a una secuencia separada (puedes pensar en esto, aproximadamente, como un subproceso separado). Esto significa que el uso simultáneo de IDB ahora es más rápido, ya sea desde el mismo sitio o desde sitios cruzados. En esta publicación, se brindan todos los detalles y se explica qué debes hacer para aprovechar este cambio, que está disponible a partir de Chrome 126.
Entre sitios
Si tu uso de IDB es en varios sitios, no necesitas hacer nada. Una vez que se haya realizado este movimiento a nivel del navegador y el almacén de respaldo de cada instancia de IDB se haya movido a una secuencia separada, la mejora del rendimiento se producirá sin que tengas que hacer nada.
Same-site
Para obtener esta mejora del rendimiento para el uso en el mismo sitio, debes separar el uso de tu IDB en diferentes instancias, es decir, depósitos de almacenamiento. En el siguiente ejemplo de código, se muestra cómo puede funcionar:
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. */
};
Navegadores compatibles
La mejora del rendimiento que se menciona en esta entrada del blog es una mejora progresiva que puedes aprovechar cuando la API de Storage Buckets sea compatible con tu navegador (a partir de Chrome 122) y cuando las instancias de IDB se fragmenten, a partir de Chrome 126.
Herramientas para desarrolladores
Si inspeccionas las instancias de IDB con las Herramientas para desarrolladores de Chrome, puedes ver el bucket de almacenamiento utilizado en la sección Nombre del bucket, que se destaca con un cuadro rojo en la siguiente captura de pantalla.
Vínculos relacionados
- No todo el almacenamiento es igual: presentamos los buckets de almacenamiento
- Especificación del borrador
- Explicación
Agradecimientos
Evan Stade y Rachel Andrew revisaron esta publicación.