Работа с несохраненными данными формы, когда пользователь закрывает браузер

StackOverflow https://stackoverflow.com/questions/1375846

Вопрос

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

Я уверен, что некоторым из вас приходилось сталкиваться с проблемой несохраненной формы.Чем вы занимаетесь?А ты знаешь:

  • позвольте пользователям просто потерять свои изменения,
  • спросите их, используя модальное окно если они уверены, что поступили правильно,
  • сохранение отдельных полей на лету по мере того, как они меняются,
  • или у вас есть какой-то окончательный метод, чтобы автоматическое сохранение данные, когда они вот-вот будут потеряны безвозвратно?
Это было полезно?

Решение

Мне нравится ваш третий вариант:

  • сохраняйте отдельные поля "на лету" по мере их изменения.

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

  1. Улучшенный пользовательский опыт - пользователь будет впечатлен формой, которая не теряет изменений.Они являются "преданными" как только они будут подтверждены.Например, он вводит действительный адрес электронной почты , и он мгновенно сохраняется, кроме того, ему предоставляется своего рода обратная связь для каждого поля, которое было успешно сохранено (например, зеленая галочка появляется рядом с поле).
  2. Больше ничего 'вот дерьмо, мой браузер разбился и я потерял всю свою информацию- ситуации.

Недостатки:Дополнительные человеко-часы, затраченные на разработку такого решения, и возможность того, что в конечном итоге оно окажется не таким деградирующим, как более простое решение.Тем не менее, ИМО, это все равно того стоит.

Другие советы

• спросите их, используя модальное окно, уверены ли они, что поступают правильно.,

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top