Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 3591|Відповідь: 1

[Інше] Фронтенд зберігає пакет localForage від IndexedDB

[Копіювати посилання]
Опубліковано 12.10.2023 20:42:27 | | | |
Поширені фронтенд-рішення для зберігання даних переважно включають:Cookie、Web Storage、IndexedDB、WebSQL、local Storage、session Storageтощо, наприклад:

ознакаПечивоlocalStoragesessionStorageindexedDB
Життєвий цикл данихЗазвичай генерується сервером, і час закінчення можна встановити; Також можна генерувати компоненти, такі як прийняття фронтенду та js-cookieЯкщо його не прибрати, він завжди на місці; Коли браузер закрито, він також зберігається локально, але кросбраузер не підтримуєтьсяОчищення та оновлення сторінки все одно існують, коли сторінка закрита, і міжсторінкова взаємодія не підтримуєтьсяЯкщо його не прибрати, він завжди існував
Розмір сховища даних4K5M5MБез обмежень по розміру
Спілкування з серверомВін щоразу зберігається у запитуваному заголовку, що впливає на виконання запиту; Водночас, оскільки він включений у запит, він також схильний до проблем із безпекоюНе беру участіНе беру участіНе беру участі
особливістьПари ключ-значення рядків зберігають дані локальноПари ключ-значення рядків зберігають дані локальноПари ключ-значення рядків зберігають дані локальноIndexedDB — це нереляційна база даних (операції через SQL-оператори не підтримуються). Він може зберігати великі обсяги даних, надавати інтерфейси для запитів і створювати індекси, чого інші рішення для зберігання не можуть надати.

IndexedDB

Ця стаття головним чином описує використання IndexedDB для фронтенд-зберігання і представлена наступним чином:

IndexedDB — це базовий API для зберігання великих обсягів структурованих даних (також великих об'єктів файлів/бінарних (blobs)) на стороні клієнта. API використовує індекси для забезпечення високопродуктивного пошуку даних. Хоча веб-сховище корисне для зберігання менших обсягів даних, воно гірше за зберігання більших обсягів структурованих даних. IndexedDB пропонує рішення для цієї ситуації. Ця сторінка є основним посібником для MDN IndexedDB — тут ми надаємо повний посібник з довідками та використанням API, деталі підтримки браузера та посилання на деякі пояснення ключових понять.

IndexedDB має такі функції:

(1) Парне зберігання ключ-значення. IndexedDB використовує сховище об'єктів для зберігання даних. Всі типи даних можуть бути розміщені безпосередньо, включаючи JavaScript-об'єкти. У репозиторії об'єктів дані зберігаються у вигляді «пар ключ-значення», і кожен запис даних має відповідний первинний ключ, який є унікальним і не може бути відтворений, інакше виникне помилка.

(2) Асинхронний. IndexedDB не блокує браузер, і користувач все одно може виконувати інші операції, на відміну від LocalStorage, який працює синхронно. Асинхронний дизайн покликаний запобігти читанню та запису великих обсягів даних, уповільнюючи продуктивність веб-сторінок.

(3) Підтримуючі справи. IndexedDB підтримує транзакції, що означає, що якщо один із кроків операції не вдасться, вся транзакція буде скасована, а база даних повертається до стану до здійснення транзакції, і переписування лише частини даних не відбувається.

(4) Гомологічне обмеження. IndexedDB підпорядковується тому ж ліміту походження, і кожна база даних відповідає доменному імені, яке її створило. Веб-сторінки можуть отримувати доступ до баз даних лише під власними доменними іменами, а не до міждоменних баз даних.

(5) Велике місце для зберігання. IndexedDB має значно більший об'єм пам'яті, ніж LocalStorage, зазвичай не менше 250 МБ, і немає верхньої межі.

(6) Підтримка бінарного зберігання. IndexedDB може зберігати не лише рядки, а й бінарні дані (об'єкти ArrayBuffer та об'єкти Blob).


Якщо важко почати безпосередньо з IndexedDB і потрібно інкапсулювати його самостійно, можна використовувати деякі пакети, наприклад:


  • localForage: Простий Polyfill, який забезпечує простий синтаксис значень для сховищ даних на стороні клієнта. Він використовує IndexedDB у фоновому режимі і повертається до WebSQL або localStorage у браузерах, які не підтримують IndexedDB.
  • Dexie.js: Обгортки IndexedDB дозволяють швидше розробляти код завдяки простому синтаксису.
  • ZangoDB: Інтерфейс IndexedDB, схожий на MongoDB, який підтримує більшість знайомих функцій фільтрації, проєкції, сортування, оновлення та агрегації MongoDB.
  • JsStore: обгортка IndexedDB з SQL-синтаксисом.
  • MiniMongo: MongoDB у клієнтській пам'яті, що підтримується локальним сховищем, синхронізація серверів через http. MeteorJS використовує MiniMongo.
  • PouchDB: Клієнт, який реалізує CouchDB у браузері за допомогою IndexedDB.
  • idb: Крихітна (〜1.15k) бібліотека з більшістю API, схожою на IndexedDB, але з деякими незначними покращеннями, які значно покращують зручність бази даних.
  • idb-keyval: Дуже просте та невелике (~600B) обіцянкове парне зберігання ключ-значення, реалізоване за допомогою IndexedDB.
  • sifrr-storage: Дуже невелика (~2kB) база даних на основі обіцянків на стороні клієнта. Реалізовано на основі IndexedDB, localStorage, WebSQL та Cookies. Він може автоматично обирати підтримувані бази даних, згадані вище, і використовувати їх у порядку пріоритету.
  • lovefield: Lovefield — це реляційна база даних для веб-додатків, написана на JavaScript, може працювати в різних браузерних середовищах і надає SQL-подібний API, який є швидким, безпечним і простим у використанні.

localForage

localForage — це швидкий і простий JavaScript-репозиторій. localForage покращує офлайн-досвід веб-додатків, використовуючи асинхронне зберігання (IndexedDB або WebSQL) та простий API, схожий на localStorage. localForage використовує localStorage у браузерах, які не підтримують IndexedDB або WebSQL.

Адреса GitHub:Вхід за гіперпосиланням видно.
Китайський туторіал:Вхід за гіперпосиланням видно.

localForage надає два різних js-файли, відмінності такі:

localforage.js: бібліотека Promise, що містить реалізацію lie (Вхід за гіперпосиланням видно.), файл досить великий, і синтаксис promise можна використовувати в старіших браузерах.
localforage.nopromises.js: Немає реалізації Promise, підтримуються лише нові версії браузерів.

Тестовий код:



(Кінець)




Попередній:ASP.NET Core (двадцять п'ять) залежностей впроваджують ліниву ліниву ініціалізацію
Наступний:Зарезервуйте блок IP-адреси CIDR приватної мережі IPv4
 Орендодавець| Опубліковано 02.03.2025 19:12:18 |
Дуже просте ключове сховище на основі обіцянок, реалізоване легким IndexedDB:https://github.com/jakearchibald/idb-keyval
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com