Interested Article - IndexedDB

IndexedDB JavaScript -интерфейс прикладного программирования ( API ) клиентского хранилища большого объема структурированных данных, в том числе файлы / blobs . Другими словами, это NoSQL -хранилище данных в формате JSON внутри браузера . Стандарт разработан W3C и внедрен в браузерах с 2011 года.

История

Поддержка IndexedDB была добавлена ​​в Firefox версии 4, Google Chrome версии 11, и Internet Explorer версии 10. Safari в конечном счете добавил поддержку в версии 8.

База данных Web SQL была предшествующим API, разработанным Apple . Но Mozilla выступила против его стандартизации, потому что не было предложено альтернатив движку SQLite . Таким образом, он был объявлен устаревшим в пользу IndexedDB .

Основные принципы

В базе данных сайты IndexedDB могут постоянно хранить и читать данные клиентского хранилища. Каждый домен имеет свою собственную область хранения, доступ к данным, хранящимся в другом домене, не предоставляется в соответствии с принципом одинакового источника ( англ. Same Origin Policy ). Размер доступной памяти зависит от браузера, обычно существует фиксированный предел, который не может быть превышен, и мягкий предел, из которого пользователь должен сначала согласиться на хранение. В принципе, хранилище является постоянным, но браузеры предлагают своим пользователям возможность удаления сохраненных данных.

База данных является объектной базой данных, обычно хранятся объекты JavaScript, с одной из записей в качестве ключа, с помощью которого можно получить данные. Индексы также могут быть созданы для других записей хранимых объектов, чтобы обеспечить эффективный поиск.

Доступ к базе данных асинхронный: клиент делает запрос и регистрирует функции обратного вызова. Как только станет известен результат запроса, он будет проинформирован об этом и, в случае успеха будут предоставлены запрошенные данные, в случае ошибки - причина. При доступе транзакции используются для обеспечения согласованности данных, даже если, например, две одновременно открытые вкладки имеют независимый доступ к базе данных.

Реализации

Точная реализация базы данных не фиксирована, однако она представляет собой B-дерево . Все современные браузеры поддерживают стандарт, так как он постоянно развивается, не всегда в текущей версии. В браузерах Microsoft интерфейс реализован лишь частично. Старых версиях браузеров API все еще частично снабжен префиксом разработчика.

Альтернативы

Web Storage — гораздо более простая альтернатива хранения данных, но с меньшим числом возможностей, предназначенная для небольшого объема данных.

Альтернативным стандартом, представляющим собой базу данных, к которой можно обращаться посредством SQL -запросов, был Web SQL . Однако этот стандарт был реализован только в нескольких браузерах, поэтому его разработка была прекращена в пользу IndexedDB .

В старых браузерах IndexedDB можно моделировать с помощью полифилов ( англ. Polyfill ).

См. также

Примечания

  1. . W3.org. 2 февраля 2011 года.
  2. (англ.) . Developer.mozilla.org. Архивировано из 26 мая 2012 года.
  3. (англ.) . Проект Chromium (21 мая 2012). 4 марта 2017 года.
  4. (англ.) , MSDN, 2012-03-14, из оригинала 26 марта 2015 . Дата обращения: 8 февраля 2019. Архивировано 26 марта 2015 года.
  5. (англ.) . Apple. 12 декабря 2017 года.
  6. Shankland, Stephen (англ.) . News.cnet.com (12 марта 2010). 8 апреля 2013 года.
  7. (англ.) . Weblogs.mozillazine.org. 6 августа 2011 года.
  8. . Дата обращения: 8 февраля 2019. 14 февраля 2021 года.
  9. Raymond Camden. (англ.) (17 апреля 2015). 9 февраля 2019 года.
  10. (нем.) (19 сентября 2017). — Обзор поддержки браузерами. 9 февраля 2019 года.
  11. (англ.) . 8 апреля 2017 года.
  12. Ian Hickson. (англ.) . 3 февраля 2019 года.
  13. Parashuram Narasimhan. (англ.) . Mozilla Hacks (31 июля 2012). 9 февраля 2019 года.

Ссылки

  • : официальная спецификация
  • : описание в сети разработчиков Mozilla
Источник —

Same as IndexedDB