Я следую за Progressive Web App lab from Google, и он говорит, что он использует localStorage для простоты, но мы должны изменить его на idb.Использование idb вместо localStorage
В принципе, мы хотим сохранить список городов для отображения их информации о погоде.
Я пробовал использовать простой idb, следуя информации here, но я думаю, что я слишком новичок в этом, и я не мог получить ничего из этого. Я должен сделать:
const dbPromise = idb.open('keyval-store', 1, upgradeDB => {
upgradeDB.createObjectStore('keyval');
});
и будет keyval быть имя моей переменной, где я хотел бы использовать keyval.get() или keyval.set(), чтобы получить и ценности магазина?
я решил перейти к более простому idbKeyval, я делаю:
app.saveSelectedCities = function() {
var selectedCities = JSON.stringify(app.selectedCities);
idbKeyval.set(selectedCities);
};
вместо примера LocalStorage:
app.saveSelectedCities = function() {
var selectedCities = JSON.stringify(app.selectedCities);
localStorage.selectedCities = selectedCities;
};
и
app.selectedCities = idbKeyval.keys().then(keys => console.log(keys)).catch(err => console.log('It failed!', err));
вместо localStorage пример:
app.selectedCities = localStorage.selectedCities;
Но мое приложение не загружается никаких данных, и в консоли инструментов для разработчиков, я получаю:
app.js:314 Uncaught ReferenceError: idbKeyval is not defined(…)
Я уверен, что я что-то тривиальное хватает, но это мои первые шаги с Javascript и нравится, поэтому, пожалуйста, любая помощь с любым из затронутых здесь пунктов будет принята с благодарностью!
Вы включаете библиотеку idb-keyval? – Marco
@Marco Yup. Я знал, что это должно быть чем-то простым и немым. Не стесняйтесь добавлять это в качестве ответа, и я выберу его как правильный. – coconut
Выполнено, спасибо :) – Marco