How to operate indexedDB in html5
This time I will show you how to operate indexedDB in html5, and what are the precautions for operating indexedDB in html5. The following is a practical case, let's take a look.
indexedDB is an API that stores a large amount of structured data. The asynchronous API is used in the demo. The trouble is that all operations on indexedDB will generate an asynchronous 'request'. As long as you are familiar with the API, it is easy to operate. Simple. The general process is like this1. Open the databasevar 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 暂时用到两个参数,数据库&&主键 } } }
Event && Processing data
Then it’s time to operate the database//插入数据 暂时只插入一列 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('键值') ... <!DOCTYPE html> <html> <head> <script> 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); </script> </head> <body> <ul id="todoItems"></ul> <input type="text" id="todo" name="todo" placeholder="adsageIDB text?" /> <input type="submit" value="增加一个 IDB" onclick="addTodo(); return false;"/> </body> </html>
Detailed Introduction to H5’s Universal Interface
How to draw a five-pointed star in H5
The above is the detailed content of How to operate indexedDB in html5. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



Guide to Table Border in HTML. Here we discuss multiple ways for defining table-border with examples of the Table Border in HTML.

Guide to HTML margin-left. Here we discuss a brief overview on HTML margin-left and its Examples along with its Code Implementation.

This is a guide to Nested Table in HTML. Here we discuss how to create a table within the table along with the respective examples.

Guide to HTML Table Layout. Here we discuss the Values of HTML Table Layout along with the examples and outputs n detail.

Guide to HTML Input Placeholder. Here we discuss the Examples of HTML Input Placeholder along with the codes and outputs.

Guide to the HTML Ordered List. Here we also discuss introduction of HTML Ordered list and types along with their example respectively

Guide to Moving Text in HTML. Here we discuss an introduction, how marquee tag work with syntax and examples to implement.

Guide to HTML onclick Button. Here we discuss their introduction, working, examples and onclick Event in various events respectively.
