Хорошо, плохо и безобразно
Зависит от функциональности и требований вашего приложения, но Javascript, вероятно, будет лучшим способом.Вы можете использовать либо массивы или объекты, или что-либо в JavaScript.Он не зависит от сервера и будет сохранять данные в течение длительного периода времени, пока клиентский сеанс остается присутствующим (окно браузера не закрывается по любой причине), но этого можно легко избежать (см. Мой последний абзац).
Использование XML-документов было бы наихудшим решением, поскольку XML не так хорошо поддерживается на стороне клиента, как вы думаете.
Сеансы на стороне сервера хороши и плохи.Они хороши, если вы время от времени сохраняете промежуточные результаты, поэтому, если сеанс клиента заканчивается по какой-либо причине, пользователь не теряет все данные.Но проблема в том, что срок его действия также может истечь на сервере.
Если бы я был вами, я бы использовал хранилище Javascript и при необходимости иногда отправлял сериализованные результаты JSON на сервер и сохранял их там (на основебизнес-процесс, хранящий эти данные где-то еще, чем сессия, может быть лучшим решением).Я бы выполнил вторую часть (с несколькими комбинациями сторон) только в том случае, если бы знал, что пользователь, скорее всего, будет создавать формы в несколько этапов в течение более длительного периода времени и нескольких клиентских сеансов.но может также использоваться для предотвращения отказов.Тем не мение. Javascript - ваш лучший выбор с возможным взаимодействием на стороне сервера .
Сохранение данных между страницами на клиенте
Помните, что также возможно сохранять данные между страницами на страницесторона клиента.Проверьте sessvars library для этого.Таким образом, даже если страница обновляется или перенаправляется, а затем возвращается, все это может быть сохранено на стороне клиента между этими событиями как волшебство.Изумительная любая довольно крошечная библиотека, которая делала мою жизнь несколько раз.И значительно снизила сложность приложения, которое в противном случае пришлось бы реализовывать с помощью чего-то более сложного.