insert |
indexedDB |
async function sampleTest(dbName, storeName)
{
let version = 1;
const db = await openDatabase(dbName, version, (db) =>
{
if (!db.objectStoreNames.contains(storeName))
{
const store = db.createObjectStore(storeName, { keyPath: "f1" });
store.createIndex("f2", "f2", { unique: false });
store.createIndex("f3", "f3", { unique: false });
}
});
//insert
await runTx(db, storeName, "readwrite", (store) =>
{
store.add({ f1: 0, f2: 1, f3: "test1" });
store.add({ f1: 1, f2: 2, f3: "test2" });
store.add({ f1: 2, f2: 3, f3: "test3" });
});
db.close();
}
function waitForTx(tx)
{
return new Promise((resolve, reject) =>
{
tx.oncomplete = () => resolve();
tx.onabort = () => reject(tx.error ?? new Error("Transaction aborted"));
tx.onerror = () => reject(tx.error);
});
}
async function runTx(db, storeName, mode, work)
{
const tx = db.transaction([storeName], mode);
const store = tx.objectStore(storeName);
const result = await work(store);
await waitForTx(tx);
return result;
}
function openDatabase(dbName, version, upgrade)
{
return new Promise((resolve, reject) =>
{
const req = indexedDB.open(dbName, version);
req.onupgradeneeded = (event) =>
{
const db = event.target.result;
upgrade?.(db, event);
};
req.onsuccess = (event) =>
{
resolve(event.target.result);
};
req.onerror = () => reject(req.error);
});
}
sampleTest("aaa", "t1");
| ホームページおよプリ等に掲載されている情報等については、いかなる保障もいたしません。 ホームページおよびアプリ等を通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、ホームペーよびアプリ利用したいかなる理由によっての障害等が発生しても、 その結果ホームページおよびアプリ等を利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |