Javascript 如何在IndexedDB中保存对象?

Javascript 如何在IndexedDB中保存对象?,javascript,indexeddb,Javascript,Indexeddb,我想将API数据存储在浏览器的indexedDB中。我会尝试本地存储,但它有5MB的限制,但我的JSON数据超过7MB。我想保存在indexedDB中,以便更快地访问。我想以JSON格式保存整个数据,但不知道如何设置索引数据库的方案。从数据库中获取的数据是testData const db =new Dexie("ReactDexie"); db.version(1).stores({ test:"++id title " //

我想将API数据存储在浏览器的indexedDB中。我会尝试本地存储,但它有5MB的限制,但我的JSON数据超过7MB。我想保存在indexedDB中,以便更快地访问。我想以JSON格式保存整个数据,但不知道如何设置索引数据库的方案。从数据库中获取的数据是testData

const db =new Dexie("ReactDexie");
db.version(1).stores({
            test:"++id title "   //Dont Know how to set scheme here for my json object
        })
        db.open().catch((err)=>{
            console.log(err.stack || err)
        })

        var transaction = db.transaction([testData], IDBTransaction.READ_WRITE); 
        var objstore = transaction.objectStore(testData); 

        for (var i = 0; i < testData.length; i++) { 
            objstore.put(testData[i]);
        }

const db=new Dexie(“ReactDexie”);
db.version(1).stores({
测试:“++id title”//不知道如何在这里为我的json对象设置方案
})
db.open().catch((错误)=>{
console.log(err.stack | | err)
})
var transaction=db.transaction([testData],IDBTransaction.READ\u WRITE);
var objstore=transaction.objectStore(testData);
对于(var i=0;i
遵循以下步骤获得良好的体系结构和可重用组件(创建了示例项目):-

1)创建一个文件,只需将其命名为
indexDB.js

import Dexie from 'dexie';

const db = new Dexie('ReactDexie');

db.version(1).stores({
  testData: 'datakey'
});

export default db;
import db from './indexDB.js';

export async function saveDataInIndexDB(data) {
  if (data) {
    if (db.testData) db.testData.clear();
    db.testData.add({ datakey: 'datakey', data }).then(() => {});
  }
}
const sampleJSONdata = {
    type: 'articles',
    id: '1',
    attributes: {
      title: 'JSON:API paints my bikeshed!',
      body: 'The shortest article. Ever.',
      created: '2015-05-22T14:56:29.000Z',
      updated: '2015-05-22T14:56:28.000Z'
    }
  };
2)现在创建一个实用程序函数来存储API数据(假设它位于文件
utility.js

3)从indexDB(在
utility.js
文件中)获取数据的函数

4)我正在考虑如下示例JSON数据(假设您在
App.js
中获取此数据)

5)按如下方式存储和获取数据(您可以调用`App.js文件中的
utility.js
函数)

示例项目已经创建,您可以参考此项目以进一步使用,更多关于模式的信息以及您可以找到的有用的Dexie相关文章


注*-请清除站点数据,您可能会遇到多个版本问题(在这种情况下,您可以更改或添加外部版本)

但是为什么要在browserHey Dheeraj中保存超过5 mb的数据,您解决了吗?,或者你可能仍然需要帮助?还没有找到解决方案我将如何处理这个案例场景的补充答案你在哪里补充答案
const sampleJSONdata = {
    type: 'articles',
    id: '1',
    attributes: {
      title: 'JSON:API paints my bikeshed!',
      body: 'The shortest article. Ever.',
      created: '2015-05-22T14:56:29.000Z',
      updated: '2015-05-22T14:56:28.000Z'
    }
  };
  saveDataInIndexDB(sampleJSONdata);

  const getDataFromDB = async () => {
    let data = await getDataFromIndexDB();
    console.log('Data ', data);
  };

  console.log(getDataFromDB());