Работа с несохраненными данными формы, когда пользователь закрывает браузер
-
21-09-2019 - |
Вопрос
Мне трудно понять, как это сделать автоматическое сохранение пользовательских данных в форме, когда браузер закрывается или пользователь меняет страницу.Тот Самый Событие onBeforeUnload нормально, когда вы хотите открыть диалоговое окно, но к тому времени уже слишком поздно сохранять изменения (за исключением случаев, когда вы просто заблокируйте браузер в обработчике onBeforeUnload достаточно долго, чтобы он передал запрос на сервер ... но я бы предпочел этого не делать).
Я уверен, что некоторым из вас приходилось сталкиваться с проблемой несохраненной формы.Чем вы занимаетесь?А ты знаешь:
- позвольте пользователям просто потерять свои изменения,
- спросите их, используя модальное окно если они уверены, что поступили правильно,
- сохранение отдельных полей на лету по мере того, как они меняются,
- или у вас есть какой-то окончательный метод, чтобы автоматическое сохранение данные, когда они вот-вот будут потеряны безвозвратно?
Решение
Мне нравится ваш третий вариант:
- сохраняйте отдельные поля "на лету" по мере их изменения.
Мне приходится сталкиваться с подобной ситуацией, и это то, что мы делаем.Две главные вещи, которые мне это продают:
- Улучшенный пользовательский опыт - пользователь будет впечатлен формой, которая не теряет изменений.Они являются "преданными" как только они будут подтверждены.Например, он вводит действительный адрес электронной почты , и он мгновенно сохраняется, кроме того, ему предоставляется своего рода обратная связь для каждого поля, которое было успешно сохранено (например, зеленая галочка появляется рядом с поле).
- Больше ничего 'вот дерьмо, мой браузер разбился и я потерял всю свою информацию- ситуации.
Недостатки:Дополнительные человеко-часы, затраченные на разработку такого решения, и возможность того, что в конечном итоге оно окажется не таким деградирующим, как более простое решение.Тем не менее, ИМО, это все равно того стоит.
Другие советы
• спросите их, используя модальное окно, уверены ли они, что поступают правильно.,
Закрытие окна - это акт отмены бронирования.Поскольку пользователь никогда активно не отправлял форму, нет никакой гарантии, что он хочет сохранить данные (они могут быть неверными), и ваше сохранение данных может вызвать проблемы у пользователя.
В любом браузере, в котором я его использовал, onBeforeUnload предоставляет вам модальное окно, в котором пользователю предлагается подтвердить, хочет ли он покинуть страницу или нет.Вы можете добавить свой собственный текст, предупреждающий их о наличии несохраненных данных, чтобы помочь им принять решение.Вы не хотите явно сохранять без запроса пользователя, потому что а) пользователь не пытался сохранить, и б) если вам нужно будет выдать какие-либо ошибки проверки, будет слишком поздно, поскольку страница уже находится в процессе перехода.