Я пошел проверить свою страницу в другом браузере. В Google Chrome я могу заполнить форму, нажать назад и вперед, и все еще иметь данные. Теперь мне нужно обновить страницу, чтобы некоторые данные были правильными (например, идентификатор сеанса, если срок действия файла cookie истек или пользователь выходит из системы перед отправкой). Я обновляю и теряю все данные. Есть ли какая-то опция, которую я могу установить, чтобы все данные сохранялись?
Как сделать так, чтобы данные формы не исчезали после нажатия кнопки «Обновить»?
Ответы (3)
Какой фреймворк вы используете? Например, ASP.Net WebForms будет обрабатывать это через ViewState (фу), ASP.Net MVC потребует от вас сделать это вручную и т. д.
По сути, вам нужно где-то сохранить свои данные, пока страница перезагружается, а затем повторно заполнить элементы управления.
Вам придется отправлять значения на сервер, пока они вводятся, а затем повторно заполнять поля формы при обновлении.
Да, единственный безопасный способ сделать это — использовать скрипт на стороне сервера для временного хранения формы. Поскольку браузеры по-разному обрабатывают переход назад/вперед, ваша страница не будет совместима с x-браузером, если вы не используете сервер. Если пользователь нажимает кнопку «Назад», вы уже как бы потеряны, поскольку публикация не выполняется, если только вы не опубликуете форму с некоторой магией javascript до обновления новой страницы.