Использовать локальное хранилище в качестве прокси автосохранения - хорошо или плохо? - PullRequest
1 голос
/ 01 декабря 2010

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

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

Мы подумали об использовании локального хранилища в качестве временного кэша данных, а затем просто установили более медленный интервал, который синхронизирует все пользовательские данные с веб-сервером в фоновом режиме. Это может иметь некоторые плохие побочные эффекты при работе с возможными сценариями конфликта версий.

Кто-нибудь имел опыт работы с шаблонами автосохранения и / или использования локального хранилища в качестве прокси-сервера данных, и может поделиться некоторой ценной информацией

1 Ответ

0 голосов
/ 01 декабря 2010

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

если пользователь что-то редактирует, установите переключатель в значение edited = true, если последняя фиксация длилась более 10 секунд назад, подтвердите текущее состояние (возможно, документ изменился за это время, используйте текущее состояние) установить переключатель последнего коммита на текущее время.

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

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

...