צוות Chrome ביצע מספר שיפורים שקשורים לביצועים בהטמעה של IndexedDB (IDB). אחד השיפורים שביצענו הוא העברת חנות הגיבוי של כל מופע לרצף נפרד (אפשר לחשוב על זה בערך כעל שרשור נפרד). המשמעות היא שעכשיו השימוש המקביל ב-IDB מהיר יותר, בין אם מאותו אתר או מאתרים שונים. בפוסט הזה מפורטים כל הפרטים ומוסבר מה צריך לעשות כדי לנצל את המעבר הזה, שזמין מגרסה Chrome 126.
באתרים שונים
אם אתם משתמשים ב-IDB באתרים שונים, לא צריך לעשות כלום. אחרי שההעברה ברמת הדפדפן מתבצעת, ומאגר הנתונים העורפי של כל מופע IDB מועבר לרצף נפרד, שיפור הביצועים מתרחש בלי שתצטרכו לעשות שום דבר.
באותו אתר
כדי לשפר את הביצועים בשימוש ב-IDB באותו אתר, צריך להפריד את השימוש ב-IDB למקרים שונים, כלומר למאגרי אחסון. דוגמת הקוד הבאה מראה איך זה יכול לעבוד:
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. */
};
תמיכה בדפדפנים
השיפור בביצועים שמוזכר בפוסט הזה הוא שיפור הדרגתי שתוכלו להשתמש בו כשה-API של Storage Buckets נתמך בדפדפן שלכם (מגרסה Chrome 122) וכשהמופעים של IDB מחולקים, מגרסה Chrome 126.
כלי פיתוח
אם בודקים את מופעי ה-IDB באמצעות כלי הפיתוח ל-Chrome, אפשר לראות את קטגוריית האחסון שנעשה בה שימוש בקטע שם הקטגוריה, שמודגש בתיבה אדומה בצילום המסך הבא.
קישורים רלוונטיים
תודות
הפוסט הזה נבדק על ידי Evan Stade ו-Rachel Andrew.