Das Chrome-Team hat eine Reihe von Leistungsverbesserungen an der Implementierung von IndexedDB (IDB) vorgenommen. Eine dieser Verbesserungen besteht darin, den Sicherungsspeicher jeder Instanz in eine separate Sequenz zu verschieben (das kann man sich in etwa als separaten Thread vorstellen). Das bedeutet, dass die gleichzeitige Verwendung von IDB jetzt schneller ist, entweder von derselben Website oder von verschiedenen Websites. In diesem Beitrag finden Sie alle Details und erfahren, was Sie tun müssen, um diese Änderung zu nutzen, die ab Chrome 126 verfügbar ist.
Websiteübergreifend
Wenn Sie IDB websiteübergreifend verwenden, müssen Sie nichts unternehmen. Sobald die Verschiebung auf Browserebene erfolgt ist und der Sicherungsspeicher jeder IDB-Instanz in eine separate Sequenz verschoben wurde, profitieren Sie von der Leistungssteigerung, ohne dass Sie etwas tun müssen.
Same-Site
Damit Sie diese Leistungssteigerung für die Verwendung auf derselben Website nutzen können, müssen Sie die IDB-Verwendung in verschiedene Instanzen, d. h. Speicher-Buckets, aufteilen. Das folgende Codebeispiel zeigt, wie das funktionieren kann:
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. */
};
Unterstützte Browser
Die in diesem Beitrag erwähnte Leistungssteigerung ist eine progressive Verbesserung, die Sie nutzen können, wenn die Storage Buckets API in Ihrem Browser unterstützt wird (ab Chrome 122) und wenn die IDB-Instanzen ab Chrome 126 aufgeteilt werden.
Entwicklertools
Wenn Sie die IDB-Instanzen mit den Chrome-Entwicklertools untersuchen, sehen Sie den verwendeten Speicher-Bucket im Abschnitt Bucket name (Bucket-Name), der im folgenden Screenshot rot umrandet ist.
Weitere Informationen
Danksagungen
Dieser Beitrag wurde von Evan Stade und Rachel Andrew geprüft.