html5 indexDB

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>indexDB</title>
    <script type="text/javascript" src="http://www.jeasyuicn.com/cron/jquery.min.js"></script>
    <script type="text/javascript">
        var db = null;
        //兼容火狐和谷歌写法获得indexedDB对象
        if (!window.indexedDB) {
            window.indexedDB = window.mozIndexedDB || window.webkitIndexedDB;
        }
        /**
         * 创建和打开数据库(不存在创建)
         * test:数据库名称
         * 3:数据库的版本号
         * onupgradeneeded:跟新数据库函数,版本号改变后会被调用
         */
        var request = indexedDB.open("test",3);
        request.onupgradeneeded = function(event) {
            alert(event.oldVersion);
            db = request.result;
            if (db.objectStoreNames.contains('books')) {
                db.deleteObjectStore('books');
            }
            /***
             * books:数据表
             * keyPath:主键
             * createIndex:创建索引分别是by_title by_author(在书的数据表中,可以根据书的名字和作者来进行查询)
             * unique: true:过滤重复
             */
            var store = db.createObjectStore("books", {keyPath: "isbn"});
            var titleIndex = store.createIndex("by_title", "title", {unique: true});
            var authorIndex = store.createIndex("by_author", "author");

            /**
             *进行数据插入
             */
            store.put({title: "Quarry Memories", author: "Fred", isbn: 123456,other:"..ceshi...."});
            store.put({title: "Water Buffaloes", author: "Fred", isbn: 234567});
            store.put({title: "Bedrock Nights", author: "Barney", isbn: 3456780000000000000});
        };
        //成功 //异步
        request.onsuccess = function() {
            db = request.result;
        };
        //通过事务、索引获取数据
        function getDatas() {
            /**
             *
             */
            var tx = db.transaction("books", "readonly");
            var store = tx.objectStore("books");
            var index = store.index("by_title");

            var request = index.get("Bedrock Nights");
            request.onsuccess = function() {
                var matching = request.result;
                if (matching !== undefined) {
                    // A match was found.
                    $("#d1").html(matching.isbn+";"+matching.title+";"+matching.author);
                } else {
                    // No match was found.
                    $("#d1").html(123);
                }
            };
        }
        //通过事务、游标、索引获取数据
        function getDatas1() {
            var tx = db.transaction("books", "readonly");
            var store = tx.objectStore("books");
            var index = store.index("by_author");

            var request = index.openCursor(IDBKeyRange.only("Fred"));
            var tmp  = "";
            request.onsuccess = function(event) {
                var cursor = request.result;//也可以写成var cursor = event.target.result;
                if (cursor) {
                    tmp+=cursor.value.isbn+";"+cursor.value.title+";"+cursor.value.author;
                    cursor.continue();
                } else {
                    $("#d1").html('错误...');
                }
                $("#d1").html(tmp);
            };
        }
        function deleteDb() {
            var deleteDbRequest = indexedDB.deleteDatabase('test');
            deleteDbRequest.onsuccess = function (event) {
                alert('success...');
            };
            deleteDbRequest.onerror = function (e) {
                alert('error...');
            };
        }
    </script>
</head>
<body>
<button onclick="getDatas();">获取数据</button><br/>
<button onclick="getDatas1();">获取数据1</button><br/>
<button onclick="deleteDb();">删除数据库</button><br/>
<div id="d1"></div>
</body>
</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值