diff --git a/index.html b/index.html index 9a2b4607..56154669 100644 --- a/index.html +++ b/index.html @@ -7841,7 +7841,7 @@ - + diff --git a/libs/indexedDB.js b/libs/indexedDB.js index 3d8de005..739e581d 100644 --- a/libs/indexedDB.js +++ b/libs/indexedDB.js @@ -1,82 +1,50 @@ -function waitForIndexedDB() { - return new Promise(resolve => { - const timer = setInterval(() => { - if (window.indexedDB) { - clearInterval(timer); - resolve(); - } - }, 100); - }); -} - function getValue(key) { - return new Promise((resolve, reject) => { - if (!window.indexedDB) { - reject(new Error("indexedDB not supported")); - return; + return new Promise(function (resolve) { + if (db) { + var transaction = db.transaction("store", "readonly"); + var objectStore = transaction.objectStore("store"); + var getRequest = objectStore.get(key); + getRequest.onsuccess = function (event) { + var result = event.target.result ? event.target.result.value : null; + resolve(result); + }; + } else { + setTimeout(function () { + getValue(key).then(resolve); + }, 100); } - - waitForIndexedDB().then(() => { - const request = window.indexedDB.open("d2", 1); - - request.onsuccess = event => { - const db = event.target.result; - const transaction = db.transaction("s", "readonly"); - const objectStore = transaction.objectStore("s"); - const getRequest = objectStore.get(key); - - getRequest.onsuccess = event => { - const value = (event.target.result && event.target.result.v) || null; - resolve(value); - }; - - getRequest.onerror = event => { - reject(new Error("indexedDB request error")); - console.error(event); - }; - }; - - request.onerror = event => { - reject(new Error("indexedDB request error")); - console.error(event); - }; - }); }); } -function setValue(key, value) { - return new Promise((resolve, reject) => { - if (!window.indexedDB) { - reject(new Error("indexedDB not supported")); - return; - } +var indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; +if (!indexedDB) console.error("indexedDB not supported"); - waitForIndexedDB().then(() => { - const request = window.indexedDB.open("d2", 1); +var db; +var request = indexedDB.open("myDatabase", 1); - request.onsuccess = event => { - const db = event.target.result; - const transaction = db.transaction("s", "readwrite"); - const objectStore = transaction.objectStore("s"); +request.onsuccess = function (event) { + db = event.target.result; +}; - objectStore.put({k: key, v: value}); +request.onerror = function (event) { + console.error("indexedDB request error"); + console.log(event); +}; - transaction.oncomplete = () => { - resolve(); - }; +request.onupgradeneeded = function (event) { + db = null; + var dbRequest = event.target.result; + var objectStore = dbRequest.createObjectStore("store", {keyPath: "key"}); + objectStore.transaction.oncomplete = function () { + db = dbRequest; + }; +}; - transaction.onerror = event => { - reject(new Error("indexedDB request error")); - console.error(event); - }; - }; - - request.onerror = event => { - reject(new Error("indexedDB request error")); - console.error(event); - }; - }); - }); -} - -window.ldb = {get: getValue, set: setValue}; +window.ldb = { + get: getValue, + set: function (key, value) { + var transaction = db.transaction("store", "readwrite"); + var objectStore = transaction.objectStore("store"); + objectStore.put({key: key, value: value}); + } +}; diff --git a/versioning.js b/versioning.js index c6f2a60d..8a3e0e3c 100644 --- a/versioning.js +++ b/versioning.js @@ -1,7 +1,7 @@ "use strict"; // version and caching control -const version = "1.89.30"; // generator version, update each time +const version = "1.89.31"; // generator version, update each time { document.title += " v" + version;