浅谈indexedDB/indexedDB数据实际储存的位置

本文通过一个简单的IndexedDB数据库插入测试案例,介绍了如何使用JavaScript操作IndexedDB,包括打开数据库、创建对象存储区、添加数据等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写了一个简单的数据库插入的测试。

<body>
    <button onclick="dbTest()">db测试</button>
</body>
<script>
    var db;

    var dbVersion = 1; // 全局的indexedDB数据库实例。

    // 2\. 通过IDBFactory接口的open方法打开一个indexedDB的数据库实例
    // 第一个参数: 数据库的名字,第二个参数:数据库的版本。返回值是一个:IDBRequest实例,此实例有onerror和onsuccess事件。
    let request = indexedDB.open("admin", dbVersion);


    // 打开数据库成功后,自动调用onsuccess事件回调。
    request.onsuccess = function (e) {
        console.log("开启成功success");
        db = e.target.result; // 获取到 demoDB对应的 IDBDatabase实例,也就是我们的数据库。
        db.onversionchange = () => {
            db.close();
        }
    };

    // 打开数据库失败
    request.onerror = function (e) {
        console.log("开启db失败" + e.currentTarget.error.message);
    };

    // 第一次打开成功后或者版本有变化自动执行以下事件:一般用于初始化数据库。
    request.onupgradeneeded = function (e) {
        console.log("版本修改了!");
        db = e.target.result;
        if (db.objectStoreNames.contains("users")) {
            db.deleteObjectStore("users")
        }
        db.createObjectStore("users", {
            keyPath: "username"
        })
        console.log('数据库版本更改为: ' + dbVersion);
    };
    let user = {
        username: '111007',
        phone: '189111833',
        address: 'aicoder.com'
    };

    function dbTest() {
        for (let index = 0; index < 10000; index++) {
            user.username = parseInt(user.username) + 1
            // 创建一个事务,类型:IDBTransaction,文档地址: https://developer.mozilla.org/en-US/docs/Web/API/IDBTransaction
            let transaction = db.transaction("users", "readwrite"),
                // 通过事务来获取IDBObjectStore
                store = transaction.objectStore("users"),
                result1 = store.add(user);
            result1.onsuccess = (e) => {
                console.log("1111success");
            }
        }
    }
</script>

在这里插入图片描述
这里可以看到自己定义的版本信息等
在这里插入图片描述
里面可以看到我们具体存的对象,上面是一共多少条。

值得一提的是,indexedDB的这些数据存在哪里呢。答案是
在这里插入图片描述
这是我的目录,也就存在硬盘中,50万条简单的数据也就30多M的文件大小。不知道硬盘没有空间时indexedDB是如何处理的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值