Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 3591|Respuesta: 1

[Otros] El front-end almacena el paquete localForage de IndexedDB

[Copiar enlace]
Publicado en 12/10/2023 20:42:27 | | | |
Las soluciones comunes de almacenamiento de datos frontal incluyen principalmente:Cookie、Web Storage、IndexedDB、WebSQL、local Storage、session Storageetc., por ejemplo:

característicaGalletalocalStoragesessionStorageindexedDB
Ciclo de vida de los datosGeneralmente, generados por el servidor, el tiempo de caducidad puede establecerse; También se pueden generar componentes como la adopción de front-end y js-cookieA menos que se limpie, siempre está ahí; Cuando el navegador está cerrado, también se guarda localmente, pero no se soporta la interfaz multinavegadorLa limpieza y actualización de la página seguirá existiendo cuando la página esté cerrada, y no se soporta la interacción entre páginasA menos que se limpie, siempre ha existido
Tamaño del almacén de datos4K5M5MSin límite de tamaño
Comunícate con el servidorSe lleva en el encabezado solicitado cada vez, lo que afecta al rendimiento de la solicitud; Al mismo tiempo, al estar incluido en la solicitud, también es propenso a problemas de seguridadNo participandoNo participandoNo participando
peculiaridadLos pares clave-valor de cadenas almacenan datos localmenteLos pares clave-valor de cadenas almacenan datos localmenteLos pares clave-valor de cadenas almacenan datos localmenteIndexedDB es una base de datos no relacional (no se admiten operaciones mediante sentencias SQL). Puede almacenar grandes cantidades de datos, proporcionar interfaces para consultas y construir índices, algo que otras soluciones de almacenamiento no pueden proporcionar.

IndexedDB

Este artículo describe principalmente el uso de IndexedDB para almacenamiento frontal, y se presenta de la siguiente manera:

IndexedDB es una API subyacente para almacenar grandes cantidades de datos estructurados (también objetos grandes de archivos/binarios (blobs)) en el lado del cliente. La API utiliza índices para permitir búsquedas de datos de alto rendimiento en los datos. Aunque el almacenamiento web es útil para almacenar pequeñas cantidades de datos, no es tan eficaz como almacenar grandes cantidades de datos estructurados. IndexedDB ofrece una solución para este escenario. Esta página es la guía principal de MDN IndexedDB; aquí ofrecemos una guía completa de referencia y uso de la API, detalles de soporte para navegadores y enlaces a algunas explicaciones de conceptos clave.

IndexedDB cuenta con las siguientes características:

(1) Almacenamiento de pares clave-valor. IndexedDB utiliza un almacén de objetos para almacenar datos. Todos los tipos de datos pueden depositarse directamente, incluidos los objetos JavaScript. En el repositorio de objetos, los datos se almacenan en forma de "pares clave-valor", y cada registro de datos tiene una clave primaria correspondiente, que es única y no puede duplicarse, de lo contrario se generará un error.

(2) Asincrónico. IndexedDB no bloquea el navegador y el usuario aún puede realizar otras operaciones, a diferencia de LocalStorage, que opera de forma síncrona. El diseño asincrónico es para evitar que se lean y escriban grandes cantidades de datos, ralentizando el rendimiento de las páginas web.

(3) Apoyar los asuntos. IndexedDB soporta transacciones, lo que significa que si uno de los pasos de la operación falla, toda la transacción se cancelará y la base de datos volverá al estado anterior a la transacción, y no hay caso de reescribir solo parte de los datos.

(4) Restricción de homología. IndexedDB está sujeto al mismo límite de origen, y cada base de datos corresponde al nombre de dominio que la creó. Las páginas web solo pueden acceder a bases de datos bajo sus propios nombres de dominio, no a bases de datos multidominio.

(5) Gran espacio de almacenamiento. IndexedDB tiene un espacio de almacenamiento mucho mayor que LocalStorage, generalmente no inferior a 250MB, y no hay límite superior.

(6) Soporte almacenamiento binario. IndexedDB puede almacenar no solo cadenas sino también datos binarios (objetos ArrayBuffer y objetos Blob).


Si es difícil empezar directamente con IndexedDB y necesitas encapsularlo tú mismo, puedes usar algunos paquetes empaquetados, como sigue:


  • localForage: Un Polyfill sencillo que proporciona una sintaxis de valores sencilla para almacenes de datos del lado del cliente. Utiliza IndexedDB en segundo plano y recurre a WebSQL o localStorage en navegadores que no soportan IndexedDB.
  • Dexie.js: Los envoltorios de IndexedDB permiten un desarrollo más rápido del código mediante una sintaxis sencilla.
  • ZangoDB: Una interfaz IndexedDB similar a MongoDB, que soporta la mayoría de las funciones de filtrado, proyección, ordenación, actualización y agregación conocidas de MongoDB.
  • JsStore: Un wrapper de IndexedDB con sintaxis SQL.
  • MiniMongo: MongoDB en memoria cliente soportado por localstorage, sincronización del servidor vía http. MeteorJS usa MiniMongo.
  • PouchDB: Un cliente que implementa CouchDB en el navegador usando IndexedDB.
  • idb: Una biblioteca diminuta (〜1.15k) con la mayor parte de la API similar a IndexedDB, pero con algunas mejoras menores que mejoran mucho la usabilidad de la base de datos.
  • idb-keyval: Almacenamiento por pares clave-valor basado en promesas súper simple y pequeño (~600B) implementado con IndexedDB.
  • sifrr-storage: Una base de datos clave-valor muy pequeña (~2kB) basada en promesas del lado del cliente. Implementado basado en IndexedDB, localStorage, WebSQL y cookies. Puede seleccionar automáticamente las bases de datos soportadas mencionadas anteriormente y usarlas en orden de prioridad.
  • lovefield: Lovefield es una base de datos relacional para aplicaciones web, escrita en JavaScript, puede ejecutarse en diferentes entornos de navegador y proporciona una API similar a SQL que es rápida, segura y fácil de usar.

Local Forage

localForage es un repositorio JavaScript rápido y sencillo. localForage mejora la experiencia offline de las aplicaciones web utilizando almacenamiento asíncrono (IndexedDB o WebSQL) y una API sencilla similar a localStorage. localForage utiliza localStorage en navegadores que no tienen soporte para IndexedDB o WebSQL.

Dirección de GitHub:El inicio de sesión del hipervínculo es visible.
Tutorial de chino:El inicio de sesión del hipervínculo es visible.

localForage proporciona dos archivos js diferentes, las diferencias son las siguientes:

localforage.js: una biblioteca Promise que contiene la implementación lie (El inicio de sesión del hipervínculo es visible.), el archivo es relativamente grande y la sintaxis de la promesa puede usarse en navegadores antiguos.
localforage.nopromises.js: No hay implementación de Promise, solo se admiten nuevas versiones de navegadores.

Código de prueba:



(Fin)




Anterior:ASP.NET Dependencias Core (veinticinco) inyectan inicialización de Lazy lazy lazy
Próximo:Reserva el bloque CIDR de dirección IP de la red privada IPv4
 Propietario| Publicado en 2/3/2025 19:12:18 |
Almacenamiento keyval súper simple basado en promesas implementado por un IndexedDB ligero:https://github.com/jakearchibald/idb-keyval
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com