* Common: IndexedDB

Stellt Funktionen zum Speichern und Abrufen von Daten in der IndexedDB bereit

此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/491642/1448832/%2A%20Common%3A%20IndexedDB.js

  1. // ==UserScript==
  2. // @name * Common: IndexedDB
  3. // @namespace bos-ernie.leitstellenspiel.de
  4. // @version 1.1.0
  5. // @license BSD-3-Clause
  6. // @author BOS-Ernie
  7. // @description Stellt Funktionen zum Speichern und Abrufen von Daten in der IndexedDB bereit
  8. // @icon https://www.google.com/s2/favicons?sz=64&domain=leitstellenspiel.de
  9. // @run-at document-idle
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. const databaseName = "BosErnie";
  14. const objectStoreName = "GebäudeUndFahrzeugVerwalter";
  15.  
  16. function openDB() {
  17. return new Promise((resolve, reject) => {
  18. const request = window.indexedDB.open(databaseName, 2);
  19.  
  20. request.onerror = () => {
  21. reject("Failed to open the database");
  22. };
  23.  
  24. request.onsuccess = event => {
  25. const db = event.target.result;
  26. resolve(db);
  27. };
  28.  
  29. request.onupgradeneeded = event => {
  30. const db = event.target.result;
  31.  
  32. if (!db.objectStoreNames.contains(objectStoreName)) {
  33. const objectStore = db.createObjectStore(objectStoreName);
  34. objectStore.createIndex("IndexName", "propertyName", { unique: false });
  35. }
  36. };
  37. });
  38. }
  39.  
  40. async function storeData(data, key) {
  41. const db = await openDB();
  42.  
  43. return new Promise((resolve, reject) => {
  44. const transaction = db.transaction([objectStoreName], "readwrite");
  45. const objectStore = transaction.objectStore(objectStoreName);
  46.  
  47. const request = objectStore.put(data, key);
  48.  
  49. request.onsuccess = () => {
  50. resolve("Data stored successfully");
  51. };
  52.  
  53. request.onerror = () => {
  54. reject("Failed to store data");
  55. };
  56. });
  57. }
  58.  
  59. async function retrieveData(key) {
  60. const db = await openDB();
  61.  
  62. return new Promise((resolve, reject) => {
  63. const transaction = db.transaction([objectStoreName], "readonly");
  64. const objectStore = transaction.objectStore(objectStoreName);
  65.  
  66. const request = objectStore.get(key);
  67.  
  68. request.onsuccess = event => {
  69. const data = event.target.result;
  70. resolve(data);
  71. };
  72.  
  73. request.onerror = () => {
  74. reject("Failed to retrieve data");
  75. };
  76. });
  77. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址