Потеря ввода текста в Интернете - PullRequest
1 голос
/ 14 мая 2009

Сколько раз это случилось с вами?

Вы вводите длинный блок текста в форму на веб-странице и нажимаете «Далее» или «Отправить» или что-то еще. Тогда происходит ошибка. Таким образом, вы нажимаете назад, чтобы исправить ошибку, и весь ваш спил исчез!

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

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

Итак, мне было интересно, может ли веб-разработчик что-то сделать, чтобы защититься от этого? Я никогда не думал об этом во время программирования, но хотел бы помнить об этом в будущем.

Что мы можем сделать?

Ответы [ 4 ]

2 голосов
/ 14 мая 2009

Есть два ключевых способа ведения дел:

  1. Поддерживайте сеанс, увеличивая время сеанса (плохо) или запуская страницу сервера до истечения сеанса (лучше).

  2. Обработайте сеанс перед обработкой формы при отправке. Если, как я подозреваю, это связано с тем, что пользователь вышел из системы, сохраните cookie-файл под рукой, чтобы убедиться, что вы можете снова войти в систему, прежде чем думать о прикосновении к данным формы.

И самое главное (для обоих вышеперечисленных), сохранить состояние формы при отправке !! Таким образом, даже если что-то взорвется, вы можете предоставить ссылку «назад в форму» и закачать все данные прямо в форму.

1 голос
/ 14 мая 2009

Итак, вы щелкаете назад, чтобы исправить ошибку, и весь ваш спил исчез!

Не с Firefox (в общем ...), он сохраняет введенные данные и показывает их обратно, когда вы возвращаетесь на предыдущую страницу.
Если какой-то глупый JavaScript не стирает содержимое поля при фокусировке или тому подобном!

Еще лучше, я использую It All Text! расширение, которое добавляет кнопку в textareas, позволяя мне редактировать текст в удобном реальном текстовом редакторе ... (и обновлять поле при каждом сохранении).

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

Но я бы добавил кое-что для другого распространенного случая: вы набираете что-то длинное в браузере и непреднамеренно закрываете вкладку / окно или ваш браузер / компьютер падает и т. Д.
Форумы Sun имеют замечательную функцию, которая регулярно отправляет содержимое текстовой области на сервер с помощью Ajax. Поэтому, если вы вернетесь на свою страницу, сервер сможет восстановить вашу работу, даже если вы еще ничего не отправили.

1 голос
/ 14 мая 2009

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

Asp.net получит данные из состояния просмотра и поместит их на место.

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

Ошибки валидации (на мой взгляд) лучше всего показаны:

  1. вверху страницы
  2. рядом с ошибочным элементом
  3. как модальное деление.

Это сохранит состояние просмотра, и пользователям не придется переписывать данные.

Это также происходит во многих php-фреймворках.

1 голос
/ 14 мая 2009

ASP.NET делает это автоматически, поддерживая ViewState веб-формы.

Отметьте эту соответствующую страницу , в которой обсуждается именно эта проблема в W3schools.

Итак, мои предложения будут:

  1. Убедитесь, что ViewState включен для форм, требующих пользовательского ввода (особенно тех, где они должны вводить много материала).

  2. Проверьте наличие такого рода проблем с юзабилити, добавив средства проверки, которые запускаются на стороне сервера, а затем введите неверные данные. Введенные данные на странице должны оставаться неизменными после ответа от сервера.

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