这次给大家带来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('键值') ... <!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>
相信看了这些案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
相关阅读:
Atas ialah kandungan terperinci html5怎样操作indexedDB. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kod HTML5 terdiri daripada tag, elemen dan atribut: 1. Tag mentakrifkan jenis kandungan dan dikelilingi oleh kurungan sudut, seperti. 2. Unsur terdiri daripada tag permulaan, kandungan dan tag akhir, seperti kandungan. 3. Atribut menentukan pasangan nilai utama dalam tag permulaan, meningkatkan fungsi, seperti. Ini adalah unit asas untuk membina struktur web.

HTML5 adalah teknologi utama untuk membina laman web moden, menyediakan banyak elemen dan ciri -ciri baru. 1. HTML5 memperkenalkan unsur -unsur semantik seperti, dan lain -lain, yang meningkatkan struktur laman web dan SEO. 2. Sokongan unsur multimedia dan menanamkan media tanpa pemalam. 3. Borang meningkatkan jenis input baru dan sifat pengesahan, memudahkan proses pengesahan. 4. Menawarkan fungsi storan luar talian dan tempatan untuk meningkatkan prestasi laman web dan pengalaman pengguna.

Amalan terbaik untuk kod H5 termasuk: 1. Gunakan pengisytiharan dan pengekodan watak yang betul; 2. Gunakan tag semantik; 3. Mengurangkan permintaan HTTP; 4. Gunakan pemuatan asynchronous; 5. Mengoptimumkan imej. Amalan ini dapat meningkatkan kecekapan, penyelenggaraan dan pengalaman pengguna halaman web.

Piawaian dan teknologi web telah berkembang dari HTML4, CSS2 dan JavaScript mudah setakat ini dan telah menjalani perkembangan yang ketara. 1) HTML5 memperkenalkan API seperti kanvas dan webstorage, yang meningkatkan kerumitan dan interaktiviti aplikasi web. 2) CSS3 menambah fungsi animasi dan peralihan untuk menjadikan halaman lebih berkesan. 3) JavaScript meningkatkan kecekapan pembangunan dan kebolehbacaan kod melalui sintaks moden node.js dan ES6, seperti fungsi anak panah dan kelas. Perubahan ini telah mempromosikan pembangunan pengoptimuman prestasi dan amalan terbaik aplikasi web.

H5 bukan sekadar singkatan HTML5, ia mewakili ekosistem teknologi pembangunan web moden yang lebih luas: 1. H5 termasuk HTML5, CSS3, JavaScript dan API dan Teknologi yang berkaitan; 2. Ia menyediakan pengalaman pengguna yang lebih kaya, interaktif dan lancar, dan boleh berjalan dengan lancar pada pelbagai peranti; 3. Menggunakan timbunan teknologi H5, anda boleh membuat laman web responsif dan fungsi interaktif yang kompleks.

H5 dan HTML5 merujuk kepada perkara yang sama, iaitu HTML5. HTML5 adalah versi kelima HTML, membawa ciri -ciri baru seperti tag semantik, sokongan multimedia, kanvas dan grafik, penyimpanan luar talian dan penyimpanan tempatan, meningkatkan ekspresi dan interaktiviti laman web.

H5referstohtml5, apivotaltechnologyinwebdevelopment.1) html5introducesnewelementsandapisforrich, dynamicwebapplications.2) itsupp ortsmultimediawithoutplugins, enhancusexperienceaceacrossdevices.3) SemantikelementsImproveContentstructureandseo.4) H5'srespo

Alat dan kerangka yang perlu dikuasai dalam pembangunan H5 termasuk Vue.js, React dan Webpack. 1.vue.js sesuai untuk membina antara muka pengguna dan menyokong pembangunan komponen. 2. Leact mengoptimumkan rendering halaman melalui DOM maya, sesuai untuk aplikasi yang kompleks. 3.WebPack digunakan untuk pembungkusan modul dan mengoptimumkan beban sumber.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).