H5 indexedDB 菜单操作

var stu = null;
$(document).ready(function() {
    openDB(myDB.name, myDB.version);
    stu = getDataByKey(myDB.db, 'students', 1001);
    console.log(JSON.stringify(stu));
    change_page()
});
function change_page() {
    $(".menu  li").each(function(i, n) {
        if ($(n).find("a").attr("href") == stu.name) {
            $(n).addClass("active")
        } else {
            $(n).removeClass("active")
        }
    })
}
function getDataByKey(db, storeName, value) {
    var transaction = db.transaction(storeName, 'readwrite');
    var store = transaction.objectStore(storeName);
    var result = store.get(value) var student = result.result;
    return student
}
function openDB(name, version) {
    var version = version || 1;
    var request = window.indexedDB.open(name, version);
    request.onerror = function(e) {
        console.log(e.currentTarget.error.message)
    };
    request.onsuccess = function(e) {
        var db = e.target.result;
        myDB.db = db
    };
    request.onupgradeneeded = function(e) {
        var db = e.target.result;
        if (!db.objectStoreNames.contains('students')) {
            db.createObjectStore('students', {
                keyPath: "id"
            })
        }
        console.log('DB version changed to ' + version)
    }
}
var students = [{
    id: 1001,
    name: "Byron",
    age: 24
},
{
    id: 1002,
    name: "Frank",
    age: 30
},
{
    id: 1003,
    name: "Aaron",
    age: 26
}];
var myDB = {
    name: 'test1',
    version: 4,
    db: null
};
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])
    }
}
function updateDataByKey(db, storeName, obj) {
    var transaction = db.transaction(storeName, 'readwrite');
    var store = transaction.objectStore(storeName);
    store.delete(obj.id);
    store.add(obj)
}
function init_menu() {
    openDB(myDB.name, myDB.version);
    setTimeout(function() {
        addData(myDB.db, 'students')
    },
    1000)
} //监听点击的那一个
$(".menu li").on("click",function(){var k = $(this).find("a").attr("href");var va ={id:1001,name:k,age:26}openDB(myDB.name,myDB.version);updateDataByKey(myDB.db,'students',va)});

猜你喜欢

转载自blog.csdn.net/b7410852963/article/details/50357762