Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

305
Vistas
El uso de "getAll ()" en un IndexedDB sigue arrojando errores. ¿Hay un límite en la cantidad de datos que se pueden devolver?

PROBLEMA: Sé que hay un límite en la cantidad de registros (2 ^ 32 - 1 por Mozilla ) que se pueden devolver desde IndexedDB , pero ¿qué pasa con los datos? Tengo un problema con IDBIndex.getAll() , o IDBObjectStore.getAll() para el caso, arrojando un error genérico cada vez que la cantidad de datos aparentemente excede un cierto tamaño.

 "DOMException: The operation failed for reasons unrelated to the database itself and not covered by any other error code."

Estoy usando Firefox, y esto ha sido un problema por un tiempo.

EJEMPLO:

 ... open the database, etc ... let index = db.transaction("database").objectStore("myStore").index("myIndex"); let range = IDBKeyRange.lowerBound(100000); // That's just a random number for the example let results = index.getAll(range); results.onerror = e => {...}; results.onsuccess = e => {...};

Eso siempre arrojará un error. Pero si cambio el rango a IDBKeyRange.lowerBound(100001) , siempre funciona.

PRUEBAS: si tuviera que convertir lowerBound en upperBound (y cambiar el rango), la cantidad de registros devueltos sin arrojar un error cambiaría, pero ese número sería consistente. Dado que no todos los registros tienen la misma cantidad de datos, y la cantidad de registros devueltos en cada caso es bastante cercana (19 844 frente a 20 188), eso parece respaldar mi afirmación. Lo mismo sucede si cambio el índice, solo un número diferente de registros.

Editar: probé la base de datos en otra máquina y obtuve un número máximo diferente de registros devueltos, pero ese número también fue consistente.

También intenté cerrar programas, pensando que tal vez era un problema de memoria, y cambiando el tamaño de mi base de datos agregando o eliminando una cantidad significativa de registros, pero eso no tuvo ningún efecto en los resultados devueltos.

Como solución, actualmente estoy usando openCursor() para evaluar cada registro individualmente, pero eso es más lento que usar getAll() ya que quiero todos los datos de cada registro que satisfagan la consulta.

¿Alguna idea de lo que está mal y cómo solucionarlo?

Ver problema relacionado que nunca se resolvió

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda