Допустим, у меня есть 100 полей в HTML-форме. Когда все поля заполнены, некоторая оценка вычисляется и показывается пользователю (скажем, значение оценки от 0 до 3000).
Когда пользователь изменяет значение в каком-либо поле, мы показываем ему диапазон значений (0-1000, 1001-2000, 2001-3000), без подробной оценки. Но после нажатия кнопки «Отправить» отображается точный счет.
Теперь мне нужно защитить логику - поэтому пользователи не должны понимать, как каждое поле влияет на оценку. Кроме того, пользователи не должны иметь возможность использовать какую-либо программу, чтобы «поиграть» со значениями и посмотреть, как меняется оценка.
Я думаю о следующем подходе:
- использовать сеансы;
- сохранить на стороне сервера текущее значение оценки;
- при изменении значения в одном поле отправьте запрос на сервер с измененным именем поля и новым значением;
- на стороне сервера проверить, когда был отправлен предыдущий запрос, если разница во времени слишком мала, отклонить запрос;
- сервер отвечает с новым диапазоном и сохраняет новое значение;
- при нажатии кнопки Отправить сервер отвечает серверным значением оценки (не пересчитывайте его, принимайте как есть). Не отвечайте на это слишком часто.
Есть ли другие (лучшие) подходы?