●やりたいこと
1setValue関数で、
key値を"timestamp"=new Date().getTime())
とし、indexeddb内のobjectStore内に保存
2deleteValue
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> </head> <body> <h3>登録・更新</h3> バリュー:<input type="number" id="newvalue" /> <input type="button" value="設定" onclick="setValue()"/> <hr /> <h3>参照</h3> <input type="button" value="全取得" onclick="getAll()"/> <hr /> <h3>削除</h3> 削除したい値のキー<input type="number" id="deletekey" /> <input type="button" value="削除" onclick="deleteValue()"/> <hr /> <h3>処理結果</h3> <div id="result"/> </body> <script> var db; var indexedDB = window.indexedDB || window.mozIndexedDB || window.msIndexedDB; if (indexedDB) { // データベースを削除したい場合はコメントを外します。 //indexedDB.deleteDatabase("mydb"); var openRequest = indexedDB.open("mydb", 1.0); openRequest.onupgradeneeded = function(event) { // データベースのバージョンに変更があった場合(初めての場合もここを通ります。) db = event.target.result; var store = db.createObjectStore("mystore", { keyPath: "timestamp"}); store.createIndex("myvalueIndex", "myvalue"); store.createIndex("myvalueIndex2","timestamp", "myvalue"); } openRequest.onsuccess = function(event) { db = event.target.result; } } else { window.alert("このブラウザではIndexed DataBase API は使えません。"); } function setValue(event) { var timestamp = new Date().getTime(); var value = Number(document.getElementById("newvalue").value); var transaction = db.transaction(["mystore"], "readwrite"); var store = transaction.objectStore("mystore"); var request = store.put({ timestamp: timestamp, myvalue: value}); request.onsuccess = function (event) { timestamp = new Date().getTime(); document.getElementById("newvalue").value = ""; } } function getAll(event) { var result = document.getElementById("result"); result.innerHTML = ""; var transaction = db.transaction(["mystore"], "readwrite"); var store = transaction.objectStore("mystore"); var request = store.openCursor(); request.onsuccess = function (event) { if(event.target.result == null) { return; } var cursor = event.target.result; var data = cursor.value; result.innerHTML += "timestamp:" + data.timestamp + " key:" + cursor.primaryKey + " value:" + data.myvalue + "<br/>"; cursor.continue(); } } function deleteValue(event) { var Key = document.getElementById("deletekey").value; var result = document.getElementById("result"); result.innerHTML = ""; var transaction = db.transaction(["mystore"], "readwrite"); var store = transaction.objectStore("mystore"); var request = store.delete(Key); request.onsuccess = function (event) { result.innerHTML = "削除しました。"; } } </script> </html>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/20 02:47