Ответ 1
Я не могу дать окончательный ответ для всех сценариев.
Как веб-разработчик, здесь правило, которое я обычно придерживаюсь для сайтов, которые я разрабатываю, для достижения цели не дать пользователю потерять данные:
- Отключите все кеширование (через HTTP-заголовки) на странице, которую вы хотите сохранить.
- Захват всех данных в сеанс (или некоторое другое временное хранилище) при отправке формы.
- Если пользователь перемещается назад, браузер запрашивает новую версию страницы (потому что вы ее никогда не кэшировали).
- На странице есть логика, чтобы посмотреть на сеанс/базу данных/где бы то ни было и повторно заполняет все поля на основе последнего состояния ввода. Если на странице были динамические входы, у вас должно быть достаточно данных для их воссоздания.
- Как только процесс будет завершен, используйте шаблон POST/Redirect/GET, чтобы очистить данные сеанса и затруднить возврат пользователя на исходную страницу.
Некоторые ответы, которые я нашел в Интернете /stackoverflow:
1. в https-соединениях формы всегда очищаются
2. При использовании динамических сайтов с сеансами формы всегда очищаются
Я считаю, что # 1 зависит от настроек браузера/безопасности/сценария.
Предположение № 2, конечно же, неверно во всех случаях (только что описанный шаблон использует сессионные и динамические формы).