Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 3591|Ответ: 1

[Другое] Фронтенд хранит пакет localForage IndexedDB

[Скопировать ссылку]
Опубликовано 12.10.2023 20:42:27 | | | |
Распространённые фронтенд-решения для хранения данных в основном включают:Cookie、Web Storage、IndexedDB、WebSQL、local Storage、session Storageи так далее, например:

характерныйпеченьеlocalStoragesessionStorageindexedDB
Жизненный цикл данныхОбычно генерируется сервером, и время истечения может быть установлено; Также могут генерироваться такие компоненты, как front-end внедрение и 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: Сверхпростое и небольшое (~600 Б) парное хранение ключ-значение на основе обещаний, реализуемое с помощью 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 можно использовать в старых браузерах.
localforage.nopromises.js: Нет реализации Promise, поддерживаются только новые версии браузеров.

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



(Конец)




Предыдущий:ASP.NET Ядра (двадцать пять) зависимостей вводят ленивые, ленивые, ленивые инициализации
Следующий:Зарезервировать блок CIDR IP-адреса приватной сети IPv4
 Хозяин| Опубликовано 02.03.2025 19:12:18 |
Очень простое ключевое хранилище на основе обещаний, реализуемое легким IndexedDB:https://github.com/jakearchibald/idb-keyval
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com