Данные, хранящиеся в localforage, не сохраняются на разных страницах
В моем index.html я сохранил некоторые данные, используя
localforage.getItem('data').then(function(value){
if (!value) {
localforage.setItem('data', ["test", "test test"]).then(function(value){
console.log(value); // this get's displayed on when the data is been created which is the first time the page is loaded.
}).catch(function(err){
console.log(err);
})
} else {
console.log(value); //after saving the value the first, it is always displayed here after page reloads
}
});
Теперь на моей второй странице, которая загружается после загрузки первой, что означает, что "данные" должны быть сохранены, я попытался получить данные, используя следующий код.
localforage.getItem('data').then(function(value){
console.log(value); // this prints null
}).catch(function(err) {
console.log(err);
});
1 ответ
Через пробу и ошибку я заметил причину проблемы. На странице, где хранятся данные, я включил библиотеку localforage и другой файл javascript (database.js) со следующим кодом.
$(document).ready(function() {
const appName = "testApp";
const storeName = "test_db";
localforage.config({
name: appName,
storeName: storeName
});
localforage.getItem('data').then(function(value) {
if (!value) {
localforage.setItem('data', []).then(function(value) {
console.log(value);
}).catch(function(err) {
console.log(err);
});
}
})
});
Затем я продолжил и сохранил свои данные, используя localforage.setItem(). На моей второй странице, на которой я пытался получить данные, хранящиеся в браузере, используя localforage, я не включил этот javascript. Я просто включил библиотеку localforage, и я предполагаю, что при загрузке страницы localforage создает новый магазин с другим именем. Имя по умолчанию и, следовательно, мой localforage.getItem() запрашивали хранилище, в котором не было сохранено данных. Включение database.js заставило localforage использовать хранилище, которое я настроил с помощью localforage.config(), и теперь вызывая localforage.getItem() на второй странице, успешно получает данные, сохраненные с первой страницы.