(function () { const dbNameFav = "PtryLndDB_favorites" const storeNameFav = "favorites"; const dbNameAudio = "PtryLndDB_audioRecords"; const storeNameAudio = "audioStore"; function countObjects(storeName, dbName) { return new Promise((resolve, reject) => { const openRequest = indexedDB.open(dbName); openRequest.onupgradeneeded = function (event) { db = event.target.result; if (storeName === storeNameFav) { if (!db.objectStoreNames.contains("favorites")) { var objectStore = db.createObjectStore("favorites", { keyPath: "poemId" }); } } if (storeName === storeNameAudio) { if (!db.objectStoreNames.contains('audioStore')) { var objectStore = db.createObjectStore('audioStore', { keyPath: 'id', autoIncrement: true }); // Создаём индекс для поля 'poemId' objectStore.createIndex('poemId', 'poemId', { unique: false }); } } }; openRequest.onsuccess = function (event) { try { const db = event.target.result; //// проверить существование хранилища с этим именем //if (!db.objectStoreNames.contains(storeName)) { // resolve(0); // => запись не найдена! // return; //} const transaction = db.transaction([storeName], "readonly"); const store = transaction.objectStore(storeName); const request = store.count(); request.onsuccess = function () { resolve(request.result); }; request.onerror = function () { resolve("Ошибка при подсчете записей: ", event.target.error); }; } catch (error) { console.error("Ошибка при работе с IndexedDB:", error); resolve("<неизвестно>"); } }; openRequest.onerror = function (event) { reject("Ошибка при открытии базы данных: ", event.target.error); }; }) } countObjects(storeNameFav, dbNameFav).then(count1 => { const userFavoritesPoemsLink = document.getElementById('userFavoritesPoemsLink'); userFavoritesPoemsLink.innerHTML = ' Избранные стихотворения: ' + count1 +''; }).catch(error => { console.error("Ошибка в " + storeNameFav, error); }); countObjects(storeNameAudio, dbNameAudio).then(count2 => { const userAudiorecordsLink = document.getElementById('userAudiorecordsLink'); userAudiorecordsLink.innerHTML = ' Аудиозаписи: ' + count2 +'' }).catch(error => { console.error("Ошибка в " + storeNameAudio, error); }); })()