автосохранение - PullRequest
       3

автосохранение

1 голос
/ 10 июня 2010

Я использую localalstorage для автоматического сохранения в стиле gmail на веб-странице.

Так что я в основном каждые 30 секунд сохраняю локально, хорошо.

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

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

Но, скажем, пользователь не падал. Он все сделал правильно, но затем использовал другой браузер для редактирования того же файла, поэтому новых данных в хранилище предыдущего браузера нет.

Затем он загружает файл в предыдущем браузере. Местное хранилище не должно быть восстановлено в этом случае.

Если нет возможности сравнить временные метки, как я могу решить эту проблему?

Спасибо.

1 Ответ

1 голос
/ 10 июня 2010

Предполагается, что вы используете страницу в стиле AJAX, например Gmail.

Сохраняйте логический флаг на уровне страницы, но вне локального хранилища и вне какой-либо конкретной области обновления.

var bIsInited = false;

Флагбудет ложным всякий раз, когда вся страница будет перезагружена независимо от того, нажал ли пользователь кнопку «Обновить» или загрузку страницы в первый раз (т. е. после перезагрузки браузера).

Если этот флаг имеет значение false при взаимодействии с пользовательским интерфейсом, восстановитеСостояние пользовательского интерфейса из localstorage и установите флаг в значение true.

Продолжайте сохранять новые изменения в localstorage (если, как и раньше, флаг каким-то образом не был установлен в значение false, в этом случае это тот же самый сигнал для чтения localstorageв пользовательский интерфейс перед записью пользовательского интерфейса обратно в локальное хранилище.)

Существует много вариантов этого потока, но в этом его суть.

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