Storage Standard, kalıcı depolama ve kota tahminleri ve platform depolama alanı mimarisi hakkında daha fazla bilgi edineceksiniz. Yoğun kullanım yükü altında kalıcı depolama alanı çıkarma işlemini sürdürmek için bir API'yi kullanıma sunuyoruz. daha öngörülebilir hale getirmemize yardımcı olur. Chromium 122 sürümünden itibaren kullanılabilir.
Depolama standardı hangi sorunu çözer?
Geleneksel olarak, kullanıcının cihazındaki depolama alanı tükenince, veriler aşağıdaki gibi API'ler ile depolanır:
IndexedDB veya localStorage
, kullanıcı müdahale edemediğinde kayboluyor. Bir projenin
kalıcı depolama alanı,
persist()
yöntemi
StorageManager
arayüzü. Aynı anda son kullanıcıdan izin ister ve
depolama alanı, izin verildiğinde kalıcı olacak:
const persisted = await navigator.storage.persist();
if (persisted) {
/* Storage will not be cleared except by explicit user action. */
}
Depolama alanının kalıcı olmasını isteme yöntemi ya hiç ya da hiç yoktur. Kendinizi daha iyi ifade etmenin yolu yoktur ve birikimini paylaşır. Tek bir depolama paketidir.
Storage Buckets API
Storage Buckets API'nin temel fikri Tarayıcılara birden çok depolama paketi oluşturma olanağı verir. Böylece, her paketi diğer paketlerden bağımsız olarak silin. Bu, geliştiricilerin çıkarmayı belirtmesine olanak tanır en değerli verilerin silinmemesini sağlamaya öncelik verin.
Kullanım alanı örneği
Depolama alanı paketlerinin hangi noktalarda işe yarayabileceğini göstermek için bir e-posta uygulaması düşünün. YouTube'un Uygulama, kullanıcının yalnızca istemcide bulunan gönderilmemiş taslaklarını kaybettiyse affedilemez. Öte yandan bunlar bir sunucuda depolanıyorsa kullanıcının en eski gelen kutusu e-postalarından Tarayıcısı yoğun bir depolama alanı baskısı altındaysa istemciden kaldırılacak.
Storage Buckets API'yi kullanma
Yeni depolama paketi oluşturma
StorageBucketManager
üzerinde open()
yöntemi kullanılarak yeni bir depolama paketi oluşturulabilir
kullanır.
// Create a storage bucket for emails that are synchronized with the
// server.
const inboxBucket = await navigator.storageBuckets.open('inbox');
Kalıcı yeni bir depolama paketi oluşturma
Depolama paketinin kalıcı olmasını sağlamak için durability
ve persisted
seçeneğini iletebilirsiniz.
open()
yönteminin bağımsız değişkenleri:
persisted
, depolama paketinin kalıcı olup olmayacağını belirler. İzin verilen değerler:false
(varsayılan) veyatrue
.durability
, tarayıcıya yazma performansını bir ve elektrik kesintisi durumunda veri kaybı riskini azaltır. İzin verilen değerler:'relaxed'
(varsayılan) veya'strict'
:'strict'
paket, güç kesintisinde veri kaybı riskini en aza indirmeye çalışır. Bu aşamaya daha düşük performans maliyeti, yani yazma işlemlerinin tamamlanması daha uzun sürebilir. cihazın genel performansını düşürebilir, daha fazla pil gücü tüketebilir ve depolama cihazının daha hızlı.'relaxed'
paket "unutabilir" son birkaç saniyede tamamlanan yazmalar. güç kaybı yaşanır. Buna karşılık, bu paketlere veri yazmak daha iyi performans gösterebilir pilin daha uzun süre dayanmasını sağlayabilir ve daha uzun depolama alanına neden olabilir cihaz ömrü boyunca Ayrıca, elektrik kesintisi durumunda, elektrik kesintisi durumunda'strict'
paket.
// Create a storage bucket for email drafts that only exist on the client.
const draftsBucket = await navigator.storageBuckets.open('drafts', {
durability: 'strict', // Or `'relaxed'`.
persisted: true, // Or `false`.
});
Depolama paketinden depolama API'lerine erişme
Her depolama paketi, depolama API'leriyle ilişkilendirilir. Örneğin,
IndexedDB,
Önbellek arayüzü veya
Dosya arayüzü. Bu depolama API'lerinin işleyiş şekli şöyledir:
her zamanki gibi, giriş noktası StorageBucket
arayüzündendir. Örneğin,
StorageBucket.indexedDB
.
const inboxDb = await new Promise(resolve => {
const request = inboxBucket.indexedDB.open('messages');
request.onupgradeneeded = () => { /* migration code */ };
request.onsuccess = () => resolve(request.result);
request.onerror = () => reject(request.error);
});
Geliştirici Araçları'nda depolama paketlerinde hata ayıklama
Depolama paketlerini Uygulama'daki özel bir ağaçta inceleyin > Storage bölümüne bakın.