Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 3591|Yanıt: 1

[Diğer] Ön yüz, IndexedDB'nin localForage paketini saklar.

[Bağlantıyı kopyala]
Yayınlandı 12.10.2023 20:42:27 | | | |
Yaygın ön uç veri depolama çözümleri başlıca şunları içerir:Cookie、Web Storage、IndexedDB、WebSQL、local Storage、session Storagevb., örneğin:

özellikçerezlocalStoragesessionStorageindexedDB
Veri yaşam döngüsüGenellikle sunucu tarafından üretilen son kullanma süresi ayarlanabilir; Ön uç benimseme ve js-cookie gibi bileşenler de oluşturulabilirTemizlenmedikçe her zaman oradadır; Tarayıcı kapalıyken yerel olarak da kaydedilir, ancak tarayıcılar arası desteklenmezSayfa kapalıyken sayfanın temizlenmesi ve yenilenmesi devam eder ve sayfalar arası etkileşim desteklenmezTemizlenmedikçe hep var olmuştur
Veri deposu boyutu4K5M5MBoyut sınırı yok
Sunucu ile iletişim kurHer seferinde istenen başlıkta taşınır ve bu da talebin performansını etkiler; Aynı zamanda, talebe dahil olduğu için güvenlik sorunlarına da yatkındırKatılmıyorKatılmıyorKatılmıyor
özellikDize anahtar-değer çiftleri verileri yerel olarak saklarDize anahtar-değer çiftleri verileri yerel olarak saklarDize anahtar-değer çiftleri verileri yerel olarak saklarIndexedDB, ilişkisel olmayan bir veritabanıdır (SQL ifadeleri ile işlemler desteklenmez). Büyük miktarda veri depolayabilir, sorgulama arayüzleri sağlayabilir ve diğer depolama çözümlerinin sağlayamayacağı indeksler oluşturabilir.

IndexedDB

Bu makale esas olarak ön uç depolama için IndexedDB kullanımını anlatır ve aşağıdaki şekilde tanıtılır:

IndexedDB, istemci tarafında büyük miktarda yapılandırılmış veri (aynı zamanda dosya/ikili büyük nesneler (bloblar)) depolamak için temel bir API'dir. API, verilerin yüksek performanslı aramalarını mümkün kılmak için indeksler kullanır. Web Depolama, daha küçük veri miktarlarını depolamak için faydalı olsa da, daha büyük miktarda yapılandırılmış veri depolamak kadar iyi değildir. IndexedDB bu senaryo için bir çözüm sunar. Bu sayfa, MDN IndexedDB için ana rehber sayfasıdır - burada tam bir API referans ve kullanım rehberi, tarayıcı destek bilgileri ve bazı temel kavramların açıklamalarına bağlantılar sunuyoruz.

IndexedDB aşağıdaki özelliklere sahiptir:

(1) Anahtar-değer çifti depolama. IndexedDB, veri depolamak için bir nesne deposu kullanır. Tüm veri türleri, JavaScript nesneleri dahil olmak üzere, doğrudan depolanabilir. Nesne deposunda veriler "anahtar-değer çiftleri" şeklinde saklanır ve her veri kaydının karşılık gelen bir birincil anahtarı vardır; bu anahtar benzersiz ve çoğaltılabilir, aksi takdirde bir hata atılır.

(2) Asenkron. IndexedDB tarayıcıyı kilitlemez ve kullanıcı diğer işlemleri de yapabilir; LocalStorage ise senkron olarak çalışır. Asenkron tasarım, büyük miktarda verinin okunmasını ve yazılmasını önlemek için web sayfalarının performansını yavaşlatmayı amaçlar.

(3) Destek işleri. IndexedDB işlemleri destekler; bu da işlem adımlarından biri başarısız olursa tüm işlemin iptal edileceği ve veritabanının işlem gerçekleşmeden önceki duruma geri döneceği anlamına gelir; ayrıca verinin sadece bir kısmının yeniden yazılması bir durum yoktur.

(4) Homoloji kısıtlaması. IndexedDB aynı köken sınırına tabidir ve her veritabanı, onu oluşturan alan adıyla ilişkilidir. Web sayfaları, yalnızca kendi alan adları altında veritabanlarına erişebilir, çapraz alan veritabanlarına erişemez.

(5) Büyük depolama alanı. IndexedDB, LocalStorage'dan çok daha büyük bir depolama alanına sahiptir, genellikle en az 250MB değildir ve üst sınır yoktur.

(6) İkili depolama desteği. IndexedDB sadece dizileri değil, aynı zamanda ikili verileri (ArrayBuffer nesneleri ve Blob nesneleri) de depolayabilir.


Eğer IndexedDB ile doğrudan başlamak zorsa ve kendiniz kapsüllemeniz gerekiyorsa, aşağıdaki gibi paketlenmiş paketleri kullanabilirsiniz:


  • localForage: İstemci tarafı veri depoları için basit bir değer sözdizimi sağlayan basit bir Polyfill. Arka planda IndexedDB kullanıyor ve IndexedDB'yi desteklemeyen tarayıcılarda WebSQL veya localStorage'a geri dönüyor.
  • Dexie.js: IndexedDB'nin wrapper'ları, basit sözdizimi sayesinde daha hızlı kod geliştirme imkanı sağlar.
  • ZangoDB: MongoDB'ye benzer bir IndexedDB arayüzü; MongoDB'nin tanıdık filtreleme, projeksiyon, sıralama, güncelleme ve toplama işlevlerinin çoğunu desteklemektedir.
  • JsStore: SQL sözdizimine sahip bir IndexedDB wrapper.
  • MiniMongo: MongoDB istemci belleğinde yerel depolama ile destekleniyor, sunucu senkronizasyonu http üzerinden destekleniyor. MeteorJS MiniMongo kullanıyor.
  • PouchDB: IndexedDB kullanarak tarayıcıda CouchDB uygulayan bir istemci.
  • idb: API'nin çoğunu IndexedDB'ye benzer ama veritabanının kullanılabilirliğini büyük ölçüde artıran bazı küçük iyileştirmelerle küçük (〜1.15k) bir kütüphane.
  • idb-keyval: IndexedDB ile uygulanan çok basit ve küçük (~600B) vaat tabanlı anahtar-değer çifti depolama işlemci.
  • sifrr-storage: Çok küçük (~2kB) söz tabanlı istemci tarafı anahtar-değer veritabanı. IndexedDB, localStorage, WebSQL ve Cookies temelinde uygulanmıştır. Yukarıda bahsedilen desteklenen veritabanlarını otomatik olarak seçebilir ve öncelik sırasına göre kullanabilir.
  • lovefield: Lovefield, web uygulamaları için ilişkisel bir veritabanıdır, JavaScript ile yazılmış, farklı tarayıcı ortamlarında çalışabilen ve hızlı, güvenli ve kullanımı kolay SQL benzeri bir API sunar.

localForage

localForage hızlı ve basit bir JavaScript deposudur. localForage, asenkron depolama (IndexedDB veya WebSQL) ve localStorage'a benzer basit bir API kullanarak web uygulamalarının çevrimdışı deneyimini iyileştirir. localForage, IndexedDB veya WebSQL desteği olmayan tarayıcılarda localStorage kullanır.

GitHub adresi:Bağlantı girişi görünür.
Çince Eğitimi:Bağlantı girişi görünür.

localForage iki farklı js dosyası sunar, farklar şunlardır:

localforage.js: Lie uygulamasını içeren bir Promise kütüphanesi (Bağlantı girişi görünür.), dosya nispeten büyüktür ve Promise sözdizimi eski tarayıcılarda kullanılabilir.
localforage.nopromises.js: Promise uygulaması yoktur, sadece yeni tarayıcı sürümleri desteklenmektedir.

Test kodu:



(Son)




Önceki:ASP.NET Core (yirmi beş) bağımlılıklar enjekte Tembel tembel tembel başlatma
Önümüzdeki:IPv4 özel ağının IP adresi CIDR bloğunu ayırt et
 Ev sahibi| Yayınlandı 2.03.2025 19:12:18 |
Hafif IndexedDB tarafından uygulanan süper basit söz tabanlı keyval depolama:https://github.com/jakearchibald/idb-keyval
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com