indexedDB基本使用demo

 

<html>
<head>
    <script src="jquery-3.5.1.js"></script>
</head>
<body>
<script>
    createOrOpenDb("teamtalk");
    //新建或打开已有数据库
    function createOrOpenDb(dbName){
        var request = indexedDB.open(dbName, 1);
        request.onsuccess = function(event) {
            console.log('打开/创建 数据库成功');
        };
        request.onerror = function(event) {
            console.log('打开/创建 数据库成功失败:' + event.target.error.message);
        };
    }

    function insertData(db){
        /**
         * 第一个参数,存储空间的名称,即上面的customers。
         * 第二个参数,keyPath值指定主键。
         * autoIncrement指定了key值是否自增(当key值为默认的从1开始到2^53的整数时)。
         * */
        var objectStore = db.createObjectStore("customers" , { keyPath: "name" }  );
        /**
         * 第一个参数,索引的名称。
         * 第二个参数,指定索引对应列。
         * 第三个属性, options对象,其中属性unique的值为true表示索引必须唯一。
         * */
//          objectStore.createIndex("name", "name", { unique: false });
        objectStore.add({"name": 'a', "age": "10",ssn: "444-44-4444"});
        objectStore.add({"name": 'b', "age": "20",ssn: "444-44-4442"});
    }

    function deleteData(db, storename, id){
        var transaction = db.transaction(storename, 'readwrite');//获取事务
        var store = transaction.objectStore(storename); // 得到对应的object store
        store.delete(id);// 根据id删除对应store中的数据
    }

    function readData(db, storename, id){
        var transaction = db.transaction(storename, 'readwrite');
        var objectStore = transaction.objectStore(storename);
        var req = objectStore.get(id);
        req.onsuccess = function(e) {
            var employee = e.target.result;//得到对象
            debugger
        };
    }

    function updateData(db, storename, id){
        var transaction = db.transaction(storename, 'readwrite'); //获取事务
        var store = transaction.objectStore(storename);// 得到指定的object store
        var req = store.get(id);//根据id查找指定的对象
        req.onsuccess = function(e) {
            var employee = e.target.result;//得到对象
            employee.age = 19;//修改值
            store.put(employee);//将修改之后的值放回指定的object store中
        };
    }
</script>

</body>
</html>

 

posted @ 2021-02-07 10:18  君子笑而不语  阅读(145)  评论(0编辑  收藏  举报