当前位置: 首页 > 面试题库 >

举例说明如何使用WebSQL?

殳智志
2023-03-14
本文向大家介绍举例说明如何使用WebSQL?相关面试题,主要包含被问及举例说明如何使用WebSQL?时的应答技巧和注意事项,需要的朋友参考一下
    var dbName = 'project';
    // 版本
    var version = 1;
    // 数据库数据结果
    var db;
    // 打开数据库
    var DBOpenRequest = window.indexedDB.open(dbName, version);
    // 如果数据库打开失败
    DBOpenRequest.onerror = function(event) {
        console.warn('数据库打开失败');
    };
    DBOpenRequest.onsuccess = function(event) {        
        // 存储数据结果
        db = DBOpenRequest.result;
    };
    
    // 下面事情执行于:数据库首次创建版本,或者window.indexedDB.open传递的新版本(版本数值要比现在的高)
    DBOpenRequest.onupgradeneeded = function(event) {
        var db = event.target.result;
     
        db.onerror = function(event) {
          console.warn('数据库打开失败');
        };
    
        // 创建一个数据库存储对象
        var objectStore = db.createObjectStore(dbName, { 
            keyPath: 'id',
            autoIncrement: true
        });
    
        // 定义存储对象的数据项
        objectStore.createIndex('id', 'id', {
            unique: true    
        });
        objectStore.createIndex('name', 'name');
        objectStore.createIndex('begin', 'begin');
        objectStore.createIndex('end', 'end');
        objectStore.createIndex('remark', 'remark');
    };
    
    var method = {
        add: function (newItem) {
            var transaction = db.transaction([dbName], "readwrite");
            // 打开已经存储的数据对象
            var objectStore = transaction.objectStore(dbName);
            // 添加到数据对象中
            var objectStoreRequest = objectStore.add(newItem);        
            objectStoreRequest.onsuccess = function(event) {
                console.log('插入成功')
            };
        },
        edit: function (id, data) {
            // 编辑数据
            var transaction = db.transaction([dbName], "readwrite");
            // 打开已经存储的数据对象
            var objectStore = transaction.objectStore(dbName);
            // 获取存储的对应键的存储对象
            var objectStoreRequest = objectStore.get(id);
            // 获取成功后替换当前数据
            objectStoreRequest.onsuccess = function(event) {
                // 当前数据
                var myRecord = objectStoreRequest.result;
                // 遍历替换
                for (var key in data) {
                    if (typeof myRecord[key] != 'undefined') {
                        myRecord[key] = data[key];
                    }
                }
                // 更新数据库存储数据                
                objectStore.put(myRecord);
            };
        },
        del: function (id) {
            // 打开已经存储的数据对象
            var objectStore = db.transaction([dbName], "readwrite").objectStore(dbName);            
            // 直接删除            
            var objectStoreRequest = objectStore.delete(id);
            // 删除成功后
            objectStoreRequest.onsuccess = function() {
              console.log('删除成功')
            };
        }
    };
 类似资料:
  • 本文向大家介绍举例说明useState相关面试题,主要包含被问及举例说明useState时的应答技巧和注意事项,需要的朋友参考一下

  • 本文向大家介绍举例说明attr()的使用场景相关面试题,主要包含被问及举例说明attr()的使用场景时的应答技巧和注意事项,需要的朋友参考一下 css content 的 attr() 呀,开始还以为是 jquery 的 attr() 可以用于 tooltips 可以用于多个内容文本替换,比如菜单效果 存放 i18n 信息 总的来说,是将一些文本存在 html 中,在 css 中可以被使用。

  •   生成器是一种返回可迭代对象的函数。 Generator 函数必须至少包含一个 yield 语句。 yield 是 Python 中的一个关键字,用于从函数返回值而不破坏其当前状态或对局部变量的引用。 带有 yield 关键字的函数称为生成器。   生成器仅在被要求执行时生成一次项目。 它们的内存效率很高,占用的内存空间更少。   初学者,可以把yield理解为return的另一种形式, 但是它

  • 本文向大家介绍举例说明js如何实现继承?相关面试题,主要包含被问及举例说明js如何实现继承?时的应答技巧和注意事项,需要的朋友参考一下 JavaScript 基于原型链实现的继承,简单来说就是通过对象的实现的向上查找。 比如你从未定义过方法,但是你却可以在任何地方使用它,原因就是当你使用时,他会先在自身查找看看没有这个方法,如果没有就根据寻找他的原型对象,看看他的原型对象上有没有....知道找到为

  • 本文向大家介绍举例说明js如何拖拽排序?相关面试题,主要包含被问及举例说明js如何拖拽排序?时的应答技巧和注意事项,需要的朋友参考一下 可能和 @HCLQ 说的思路差不多

  • 本文向大家介绍什么是stub?举例说明相关面试题,主要包含被问及什么是stub?举例说明时的应答技巧和注意事项,需要的朋友参考一下 stub用于模块的行为。测试时,stub可以为函数调用返回模拟的结果。比如说,我们写文件时,实际上并不需要真正去写。 Stub是用于模拟一个组件/模块的一个函数或程序。在测试用例中,Stub可以为函数调用提供封装的答案。 当然,你还可以在断言中指明Stub是如何被调用