Base de datos indexada

IndexedDB es una interfaz de programación de aplicaciones ( API ) de JavaScript para el almacenamiento del lado del cliente de grandes cantidades de datos estructurados, incluidos archivos / blobs . En otras palabras, es un almacén de datos NoSQL en formato JSON dentro del navegador . El estándar fue desarrollado por el W3C e implementado en los navegadores desde 2011. [una]

Historia

Se agregó soporte para IndexedDB en Firefox versión 4, [2] Google Chrome versión 11, [3] e Internet Explorer versión 10. [4] Safari eventualmente agregó soporte en la versión 8. [5]

La base de datos Web SQL fue una API predecesora desarrollada por Apple . [6] Pero Mozilla se opuso a su estandarización porque no se ofrecían alternativas al motor SQLite . [7] [8] Como tal, ha quedado en desuso a favor de IndexedDB .

Principios básicos

En la base de datos , los sitios de IndexedDB pueden almacenar y leer permanentemente los datos de almacenamiento del cliente. Cada dominio tiene su propia área de almacenamiento, el acceso a los datos almacenados en otro dominio no se proporciona de acuerdo con la Política del mismo origen .  La cantidad de memoria disponible varía según el navegador, generalmente hay un límite fijo que no se puede exceder y un límite flexible a partir del cual el usuario primero debe aceptar el almacenamiento. [9] En principio, el almacenamiento es permanente, pero los navegadores ofrecen a sus usuarios la opción de eliminar los datos almacenados. [diez]

Una base de datos es una base de datos de objetos, normalmente objetos JavaScript almacenados, con una de las entradas como clave, con la que recuperar los datos. También se pueden crear índices en otras entradas de objetos almacenados para permitir búsquedas eficientes.

El acceso a la base de datos es asíncrono: el cliente realiza una solicitud y registra funciones de devolución de llamada. Tan pronto como se conozca el resultado de la solicitud, se le informará de la misma y, en caso de éxito, se le facilitarán los datos solicitados, en caso de error, el motivo. Al acceder, las transacciones se utilizan para garantizar la coherencia de los datos, incluso si, por ejemplo, dos pestañas abiertas simultáneamente tienen acceso independiente a la base de datos.

Implementaciones

La implementación exacta de la base de datos no es fija, sin embargo, es un árbol B. Todos los navegadores modernos admiten el estándar, ya que está en constante evolución, no siempre en la versión actual. En los navegadores de Microsoft, la interfaz solo está parcialmente implementada. [10] Las versiones anteriores de la API del navegador todavía tienen un prefijo parcial del desarrollador. [once]

Alternativas

El almacenamiento web es una alternativa mucho más simple al almacenamiento de datos, pero con menos funciones, diseñada para una pequeña cantidad de datos.

Un estándar alternativo, que es una base de datos a la que se puede acceder a través de consultas SQL , fue Web SQL . Sin embargo, este estándar solo se implementó en algunos navegadores, por lo que se suspendió a favor de IndexedDB . [12]

En navegadores más antiguos , IndexedDB se puede modelar con polyfills .  [13]

Véase también

Notas

  1. API de base de datos indexada . W3.org. Archivado desde el original el 2 de febrero de 2011.
  2. IndexedDB - MDC Doc Center  (inglés)  (enlace no disponible) . desarrolladores.mozilla.org. Archivado desde el original el 26 de mayo de 2012.
  3. Estado de la plataforma web  . The Chromium Project (21 de mayo de 2012). Archivado desde el original el 4 de marzo de 2017.
  4. IndexedDB , MSDN, 2012-03-14 , < http://msdn.microsoft.com/en-us/library/ie/hh673548(v=vs.85).aspx > Archivado el 26 de marzo de 2015 en Wayback Machine . 
  5. ↑ Novedades en macOS  . Manzana. Archivado desde el original el 12 de diciembre de 2017.
  6. Shankland, Stephen Consensus emerge para el estándar clave de aplicaciones web |  Deep Tech - Noticias CNET . News.cnet.com (12 de marzo de 2010). Archivado desde el original el 8 de abril de 2013.
  7. ↑ Bueno, estoy de vuelta : no implementar características es difícil  . weblogs.mozillazina.org. Archivado desde el original el 6 de agosto de 2011.
  8. Más allá de HTML5: API de bases de datos y el camino hacia IndexedDB . Fecha de acceso: 8 de febrero de 2019. Archivado desde el original el 14 de febrero de 2021.
  9. Raymond Camden. IndexedDB y Limits  ( 17 de abril de 2015). Archivado desde el original el 9 de febrero de 2019.
  10. ↑ 1 2 Gefährdeter Datenschutz: Firefox löscht lokale Datenbanken nicht  (alemán) (19 de septiembre de 2017). - Descripción general del soporte del navegador. Archivado desde el original el 9 de febrero de 2019.
  11. ↑ ¿Puedo usar : IndexedDB  . Archivado desde el original el 8 de abril de 2017.
  12. Ian Hickson. Base de datos web SQL  . Archivado desde el original el 3 de febrero de 2019.
  13. Parashuram Narasimhan. Uso de la API de IndexedDB hoy: los rellenos  polivalentes de IndexedDB . Mozilla Hacks (31 de julio de 2012). Archivado desde el original el 9 de febrero de 2019.

Enlaces