Бланк данных данных в браузере - клиентское решение

98
6

В принципе, у меня есть форма, в которой есть некоторая информация, чувствительная к дате. Риск с кешированием формы заключается в следующем:


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


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


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


Обе идеи основаны на предположении, что браузер использует только кешированные данные, если форма ввода пуста (нет значения). Итак, первый вопрос, это правда?


Если это так, мне интересно, какая из этих идей будет более эффективной:


1) Сервер script просто устанавливает все входы в 0. Затем у меня есть js script, который на загрузке страницы устанавливает все входы с 0 на "". (0 никогда не будет возможной записью, в случае, если вы выбрали любые колокола).


2) Оставьте сервер script самостоятельно и просто запустите вышеупомянутый javascript через каждый вход и измените value() на вход attr("value") на вход. Поэтому, если он не существует, он устанавливает его в пустую.


Какие-то недостатки в моем понимании кеширования браузера или чего-то еще? Будет ли любой способ работать лучше?


Пример второй идеи:


$("input :text").val(function() {
realval = (!($this).attr("value")) ? 0 : $(this).attr("value");
return realval;
});

спросил(а) 2021-01-25T13:12:51+03:00 4 месяца, 2 недели назад
1
Решение
117

Используйте разные идентификаторы и имена для полей ввода, расширив их с помощью идентификатора сеанса.


например. идентификатор сеанса 12345


<input type="text" id="12345_firstname" name="12345_firstname" />

Браузер не коснется этих полей.


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


<INPUT NAME="firstname" DISABLED>
$("input").removeAttr("disabled");

ответил(а) 2021-01-25T13:12:51+03:00 4 месяца, 2 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема