Base de datos indexada | Introducción

IndexedDB es una base de datos clave-valor en el navegador. Es una base de datos NoSQL. Es transaccional, es decir, si una acción particular cae dentro de una transacción, ninguna de las acciones de esa transacción se aplica. Esto asegura que la base de datos permanezca consistente.

IndexedDB

Inside a database

¿Por qué usar IndexedDB?

  1. LocalStorage se diseñó para cantidades más pequeñas de datos y solo puede almacenar datos de strings para claves y valores, mientras que IndexedDB puede trabajar con una gran cantidad de datos no estructurados, incluidos archivos/blobs.
  2. Es similar a un objeto de JavaScript, también puede tener propiedades y objetos anidados.
  3. Se puede acceder de forma asíncrona, se puede utilizar con los trabajadores de servicios, lo que ayuda a almacenar los datos fuera de línea y, una vez que el dispositivo obtiene acceso a Internet, los sincroniza con los servidores.

Usando IndexedDB: JavaScript se usa para acceder a IndexedDB.

  1. Abrir una base de datos –
    // Syntax
    let request = indexedDB.open(name, version);
    // name : database name, string value
    // version : version number, by default 1, positive integer
    

    El código para abrir una base de datos debe verificar si la base de datos existe o no.

    let request = indexedDB.open("gfg", 1);
      
     request.onupgradeneeded = function() {
      // Initialize new database
     };
      
    request.onerror = function() {
      console.error("Unable to access database", request.error);
      // Logs error to the console
    };
      
    request.onsuccess = function() {
      let db = request.result;
      // Use existing database
    };
  2. Crear un almacén de objetos en la base de datos –
    // Syntax
    let objectStore = db.createObjectStore(name, [keyOption]);
    // name : object store name
    // keyOption : object property key
    

    let request = indexedDB.open("gfg", 1);
      
    // Check if object store exists and
    // then creates it
    request.onupgradeneeded = function() {
      let db = request.result;
      if (!db.objectStoreNames.contains('articles')) { 
        db.createObjectStore('articles', {keyPath: 'id'});  
      }
    };
  3. Iniciar una transacción –
    // Syntax
    db.transaction(objectStore, type]);
    // objectStore : objectStore which is to be used
    // type : readonly or readwrite
    

    let transaction = db.transaction("articles", "readwrite");
      
    // Access an object store
    let articles = transaction.objectStore("articles");
      
    // Create an object
    let article = {
      id: 'Array',
      topic : 'Introduction to Array'
    };
      
    // Add an object 
    let request = articles.add(article);
      
    // Success
    request.onsuccess = function() {
      console.log("Article Published", request.result);
    };
      
    // Failed
    request.onerror = function() {
      console.log("Article Publish failed", request.error);
    };
  4. Cerrar la transacción

    let transaction = db.transaction("books", "readwrite");
      
    // Conducting operations in the transaction
      
    // When transaction is over
    transaction.oncomplete = function() {
      console.log("Transaction is complete");
    };

    Podemos abortar la transacción por la fuerza mediante el método transaction.abort().

Use of IndexedDB

El uso y la implementación de IndexedDB son simples. Así es como puede usar IndexedDB en su código a través de JavaScript.

Publicación traducida automáticamente

Artículo escrito por tarundhamor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *