Сохранить в IndexedDB перед загрузкой - PullRequest
0 голосов
/ 08 июня 2018

Я хочу сохранить в IndexedDB до того, как пользователь покинет мою страницу.Я делаю это периодически, но так как он довольно большой, я не хочу сохранять слишком часто.

мой текущий (сломанный) код выглядит следующим образом:

window.addEventListener('beforeunload', (event) => {
    persist(state);
});

Здесь,persist немедленно возвращает обещание, и браузер существует до того, как у меня появляется возможность сохранить состояние.

К сожалению, на данный момент у IndexedDB нет синхронного API.

Есть ли что-то, что яможно сделать, чтобы браузер подождал, чтобы я мог сохранить значение в IndexedDB?

Ответы [ 2 ]

0 голосов
/ 08 июня 2018

Как насчет того, чтобы вместо этого сохранить в localStorage при выгрузке страницы.Позже, проверьте это значение в localStorage и переместите его в indexedDB, когда у вас будет больше времени.

0 голосов
/ 08 июня 2018

Сначала на вашей странице может быть что-то вроде кнопки сохранения.

Затем, когда пользователь закрывает страницу, вы можете отобразить диалоговое окно для запроса на подтверждение закрытия страницы без сохранения.С другой стороны, вы можете использовать это время для сохранения данных или, поскольку пользователю сообщается о необходимости сохранения данных, пользователь может вручную нажать кнопку сохранения, чтобы сохранить их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...