Почему моего мобильного локального хранилища хватает ненадолго

avatar
user16620643
8 августа 2021 в 23:16
138
1
0

Я разрабатывал игру на JavaScript, в которой важно, чтобы определенные переменные сохранялись для сохранения прогресса пользователя.

Я использовал что-то похожее на функцию ниже, чтобы сохранить эти переменные:

function autosave() {
    localStorage.setItem("variablename", variablename);
}
setInterval(autosave, 1000);

Когда загружается страница, я использую функцию, которая определяет, есть ли сохраненные данные, и, если есть, загружает все переменные.

Большую часть тестов я выполняю в Safari на iPad. Данные сохраняются и загружаются отлично, единственная проблема заключается в том, что если пользователь возвращается в игру через неделю или около того, сохраненные данные исчезают. В чем причина этого и как сделать так, чтобы данные «сохранились дольше»?

Источник

Ответы (1)

avatar
Fabian
8 августа 2021 в 23:23
0

Я обнаружил, что

Safari удалит IndexedDB, LocalStorage, ключи мультимедиа, SessionStorage, и регистрации Service Worker через семь дней, если пользователь не взаимодействовать с соответствующим веб-сайтом в течение этого периода.

(Источник)

Я думаю, что ваш код в порядке, и вы не можете заставить данные «жить дольше».

user16620643
8 августа 2021 в 23:26
0

Существуют ли другие способы сохранения данных, которые не стираются через 7 дней?

Fabian
8 августа 2021 в 23:30
0

Я не думаю, что есть другие практические методы сохранения такого рода данных в браузере, особенно если вам нужно сохранить много данных. Вы холодно предоставляете возможность загружать или загружать сохранения в виде файлов json, но это не будет так практично для пользователей.

user16620643
8 августа 2021 в 23:34
0

Будет ли использование Chrome увеличивать время сохранения данных?

Fabian
8 августа 2021 в 23:54
0

Да, я так думаю.