Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

295
Views
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
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!