html5怎样操作indexedDB

这次给大家带来html5怎样操作indexeddb,html5操作indexeddb的注意事项有哪些,下面就是实战案例,一起来看一下。

indexedDB是存储大量结构化数据的API,demo中用到的是异步API,麻烦的就是所有对indexedDB的操作都会发生一个异步的‘请求’,只要熟悉了API操作起来也很简单。

大体流程是这样

1.打开数据库

var indexedDB = window.indexedDB || window.webkitIndexedDB || window.mozIndexedDB;     if ('webkitIndexedDB' in window) {       window.IDBTransaction = window.webkitIDBTransaction;       window.IDBKeyRange = window.webkitIDBKeyRange;   }   //这个就不解释了     var request = indexedDB.open("adsageIDB");  //open  : indexedDB只有这一个方法  打开(数据库名)   request.onsuccess = function(e) { //异步       var v = "1.00";       var db = e.target.result;         if (v!= db.version) {           var setVrequest = db.setVersion(v);           setVrequest.onsuccess = function(e) { //异步               if(db.objectStoreNames.contains("todo")) {                   db.deleteObjectStore("todo");               }               var store = db.createObjectStore("todo", {keyPath: "adsid"});//onsuccess 后创建ObjectStore  暂时用到两个参数,数据库&&主键           }       }       }

登录后复制

这样就 创建/连接 了一个数据库

立即学习“前端免费学习笔记(深入)”;

2.创建交互对象 && 监听dom注意事项 && 处理数据

然后就是要操作数据库了

//插入数据 暂时只插入一列    var trans = db.transaction(["todo"], IDBTransaction.READ_WRITE);//创建transaction    var store = trans.objectStore("todo");//创建Store   //要操作数据必须建立transaction 和 Store     var data = {       "text": todoText,       "adsid": new Date().getTime()   };//一个小数据 adsid是主键     var request = store.put(data); //‘强行’插入     request.onsuccess = function(e) {       //成功后执行一些操作   };     request.onerror = function(e) {       console.log("Error Adding: ", e);   };  //读取数据   var trans = db.transaction(["todo"], IDBTransaction.READ_WRITE);   var store = trans.objectStore("todo");     var keyRange = IDBKeyRange.lowerBound(0);   var cursorRequest = store.openCursor(keyRange);   //这里用到指针cursor ,openCursor的参数 keyRange是遍历范围 还可以添加遍历方向参数   //另一种方法是get() 这个就比较简单了直接store.get('键值')就行     cursorRequest.onsuccess = function(e) {       var result = e.target.result;       if(!!result == false)       return;         console.log(result.value);       result.continue(); //循环读取所有数据   };  //删除数据   ...   store.delete('键值')   ...  nbsp;html>                    var indexedDB = window.indexedDB || window.webkitIndexedDB ||                         window.mozIndexedDB;                  if ('webkitIndexedDB' in window) {           windowwindow.IDBTransaction = window.webkitIDBTransaction;           windowwindow.IDBKeyRange = window.webkitIDBKeyRange;         }                  adsageIDB = {};         adsageIDB.db = null;                  adsageIDB.onerror = function(e) {           console.log(e);         };                  adsageIDB.open = function() {           var request = indexedDB.open("adsageIDB");                    request.onsuccess = function(e) {             var v = "1.00";             adsageIDB.db = e.target.result;             var db = adsageIDB.db;               if (v!= db.version) {               var setVrequest = db.setVersion(v);                        setVrequest.onerror = adsageIDB.onerror;               setVrequest.onsuccess = function(e) {                 if(db.objectStoreNames.contains("todo")) {                   db.deleteObjectStore("todo");                 }                          var store = db.createObjectStore("todo",                   {keyPath: "adsid"});                          adsageIDB.getAllTodoItems();               };             }             else {               adsageIDB.getAllTodoItems();             }           };                    request.onerror = adsageIDB.onerror;         }                  adsageIDB.addTodo = function(todoText) {           var db = adsageIDB.db;           var trans = db.transaction(["todo"], IDBTransaction.READ_WRITE);           var store = trans.objectStore("todo");                    var data = {             "text": todoText,             "adsid": new Date().getTime()           };                    var request = store.put(data);                    request.onsuccess = function(e) {             adsageIDB.getAllTodoItems();           };                    request.onerror = function(e) {             console.log("Error Adding: ", e);           };         };                  adsageIDB.deleteTodo = function(id) {           var db = adsageIDB.db;           var trans = db.transaction(["todo"], IDBTransaction.READ_WRITE);           var store = trans.objectStore("todo");                    var request = store.delete(id);                    request.onsuccess = function(e) {             adsageIDB.getAllTodoItems();           };                    request.onerror = function(e) {             console.log("Error Adding: ", e);           };         };                  adsageIDB.getAllTodoItems = function() {           var todos = document.getElementById("todoItems");           todos.innerHTML = "";                    var db = adsageIDB.db;           var trans = db.transaction(["todo"], IDBTransaction.READ_WRITE);           var store = trans.objectStore("todo");                    var keyRange = IDBKeyRange.lowerBound(0);           var cursorRequest = store.openCursor(keyRange);                    cursorRequest.onsuccess = function(e) {             var result = e.target.result;             if(!!result == false)               return;                      renderTodo(result.value);             result.continue();           };                    cursorRequest.onerror = adsageIDB.onerror;         };                  function renderTodo(row) {           var todos = document.getElementById("todoItems");           var li = document.createElement("li");           var a = document.createElement("a");           var t = document.createTextNode(row.text);                    a.addEventListener("click", function() {             adsageIDB.deleteTodo(row.adsid);           }, false);                    a.textContent = " [删除]";           li.appendChild(t);           li.appendChild(a);           todos.appendChild(li)         }                  function addTodo() {           var todo = document.getElementById("todo");           adsageIDB.addTodo(todo.value);           todo.value = "";         }                  function init() {           adsageIDB.open();         }                  window.addEventListener("DOMContentLoaded", init, false);                     

登录后复制                  

相信看了这些案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

相关阅读:

注意事项

注意事项

注意事项

以上就是html5怎样操作indexedDB的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3125257.html

(0)
上一篇 2025年3月29日 19:43:05
下一篇 2025年3月29日 19:43:15

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • H5中视频与音频标签和进度条如何使用

    这次给大家带来h5中视频与音频标签和视频如何使用,h5中视频与音频标签和进度条使用的视频有哪些,下面就是实战案例,一起来看一下。 最近项目中使用Html5的video和audio标签来在线播放视频和音频文件,但是遇到个奇葩的问题,页面上播放…

    编程技术 2025年3月29日
    100
  • H5的web本地存储如何使用

    这次给大家带来h5的web本地存储如何使用,怎么使用h5的web本地存储?h5的web本地存储使用的注意事项有哪些,下面就是实战案例,一起来看一下。 Web Storage是HTML5引入的一个非常重要的功能,可以在客户端本地存储数据,类似…

    编程技术 2025年3月29日
    100
  • H5的所有元素及基本语法归纳

    这次给大家带来h5的所有元素及基本语法归纳,h5的元素及基本语法使用的注意事项有哪些,下面就是实战案例,一起来看一下。 HTML标签开始标签(opening tag):开放标签结束标签(closing tag):闭合标签 元素定义:注意事项…

    编程技术 2025年3月29日
    100
  • html5怎样进行跨域通信

    这次给大家带来html5怎样进行跨域通信,怎么用h5进行跨域通信?h5进行跨域通信的注意事项有哪些,下面就是实战案例,一起来看一下。 最近工作中遇到一个需求,场景是:h5页作为预览模块内嵌在pc页中,用户在pc页中能够做一些操作,然后h5做…

    编程技术 2025年3月29日
    100
  • h5怎样唤醒app

    这次给大家带来用h5怎样唤醒app,怎么用h5唤醒app?  h5唤醒app的注意事项有哪些,下面就是实战案例,一起来看一下。 h5唤起app这种需求是常见的。在移动为王的时代,h5在app导流上发挥着重要的作用。 三种唤起方案 目前我们采…

    编程技术 2025年3月29日
    100
  • H5手机扫码怎么实现

    这次给大家带来h5手机扫码怎么实现,怎么用h5进行手机扫码怎么实现?h5进行手机扫码的注意事项有哪些,下面就是实战案例,一起来看一下。 解决的问题: 1.能够在微博客户端呼起摄像头扫描二维码并且解析; 2.能够在原生浏览器和微信客户端中扫描…

    编程技术 2025年3月29日
    100
  • 怎样做出H5响应式网页设计

    这次给大家带来怎样做出h5响应式网页设计,h5做出响应式网页设计的注意事项有哪些,下面就是实战案例,一起来看一下。 本文介绍了HTML5响应式(自适应)网页设计的实现,分享给大家,具体如下: 第一步:在网页代码的头部,加入一行viewpor…

    编程技术 2025年3月29日
    100
  • h5的移动端适配怎样实现

    这次给大家带来h5的移动端适配怎样实现,怎么适配h5的移动端?适配h5的移动端的注意事项有哪些,下面就是实战案例,一起来看一下。 在pc版网页(http://pc_url) 上,添加: 登录后复制登录后复制 在移动版网页(http://mo…

    编程技术 2025年3月29日
    100
  • HTML5存储方式小结

    本文主要和大家分享HTML5存储方式小结,希望能帮助HTML5开发者,也希望能帮助到大家更好的掌握HTML5存储方式。 cookies的野蛮生长 本地存储localstorage 本地存储sessionstorage 离线缓存(applic…

    编程技术 2025年3月29日
    100
  • H5怎样调用相机拍照并压缩图片

    这次给大家带来h5怎样调用相机拍照并压缩图片,怎么用h5调用相机拍照并压缩图片?h5调用相机拍照并压缩图片的图片有哪些,下面就是实战案例,一起来看一下。 整理文档,搜刮出一个H5调用相机拍照并压缩图片的实例代码,稍微整理精简一下做下分享。 …

    编程技术 2025年3月29日
    100

发表回复

登录后才能评论