html学习笔记(15)

indexedDB数据库索引:

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script>
        var myDB = {
            name:"helloindexDB",
            version:1,
            db:null
        }
        function opendb(name, version){
            var version = version || 1;
            var request = window.indexedDB.open(name, version);
            request.onsuccess = function(e){
                myDB.db  = e.target.result;
                alert("数据库连接成功");
            }
            request.onerror = function(){
                alert("连接数据库失败")
            }
            request.onupgradeneeded = function(e){
                var db = e.target.result;
                if(!db.objectStoreNames.contains("students")){
                    var store = db.createObjectStore("students", {keyPath:"id"});
                    //createIndex(索引名称,索引字段, 是否唯一)
                    store.createIndex("nameIndex", "name", {unique:true});
                    store.createIndex("ageIndex", "age", {unique:false});
                }
            }
        }

        var students =[{
            id:101,
            name:"sss",
            age:10
        },{
            id:102,
            name:"ss",
            age:12
        },{
            id:103,
            name:"ssss",
            age:13
        }
        ];

        function addData(db, storeName){
            var transaction = db.transaction(storeName, "readwrite");
            var store = transaction.objectStore(storeName);
            for(var i=0; i<students.length; i++){
                store.add(students[i]);
            }
        }
        opendb(myDB.name, myDB.version);
        setTimeout(function(){
            addData(myDB.db, "students");
        },1000);
        //name
        function getDataByIndexName(db, storeName){
            var transaction = db.transaction(storeName);
            var store = transaction.objectStore(storeName);
            var index = store.index("nameIndex");
            index.get("ss").onsuccess = function(e){
                var student = e.target.result;
                console.log(student.name + "----" + student.age + "----" + student.id);
            }
        }
        setTimeout(function(){
            getDataByIndexName(myDB.db, "students");
        },1000);
        //age
        function getDataByIndexName(db, storeName){
            var transaction = db.transaction(storeName);
            var store = transaction.objectStore(storeName);
            var index = store.index("ageIndex");
            index.get(13).onsuccess = function(e){
                var student = e.target.result;
                console.log(student.name + "----" + student.age + "----" + student.id);
            }
        }
        setTimeout(function(){
            getDataByIndexName(myDB.db, "students");
        },1000);
    </script>
</head>
<body>
<!--索引:迅速定位数据,
keypass方式索引: createindex(索引名称, 索引属性字段名, 索引属性值是否唯一)
-->
</body>
</html>


创建游标

//创建游标:
        function fetchStoreByCursor(db, storeName){
            var transaction = db.transaction(storeName);
            var store = transaction.objectStore(storeName);
            var request = store.openCursor();
            request.onsuccess = function(e){
                var cursor = e.target.result;
                if(cursor){
                    console.log(cursor.key);
                    var currentStudent = cursor.value;
                    console.log(currentStudent.name);
                    //游标下移
                    cursor.continue();
                }
            }
        }
        setTimeout(function(){
            fetchStoreByCursor(myDB.db, "students");
        },1000)










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值