Учитывая, что вы хотите работать с анонимными пользователями, самый простой способ go - добавить скрытое поле на страницу и использовать его для отслеживания прогресса пользователя. Поле может содержать идентификатор виртуального сеанса, который будет указывать на запись модели в бэкэнде или на весь сеанс Q / A (уродливо, но быстро и просто). Использование REST или сокетов потребует аналогичного подхода.
Я не могу сказать в уме, можете ли вы встать поверх встроенной системы сеансов. Он будет работать для зарегистрированных пользователей, но я верю, что для анонимных пользователей он сбрасывается при refre sh (здесь может быть неправильно).