Я согласен с PBZ, сохранение отдельных шагов было бы идеальным. Вы можете, однако, сделать это с AJAX. Однако, если бы вы это сделали, потребовались бы некоторые вещи, которые звучали бы так, как будто бы они выходили за пределы вашего набора навыков, в основном, для фронт-энда разработки, вам, вероятно, нужно было бы создать новую строку базы данных и привязать ее к идентификатору сеанса пользователя, и каждый раз, когда они нажимают на следующий шаг, он обновляет эту строку. Возможно, даже привязать его к своему IP-адресу, чтобы, если все это взорвалось, они могли вернуться и нажать «помнишь меня?» для вашего приложения, чтобы получить его.
Что касается оптимизации существующей структуры, то jQuery довольно тяжел, когда дело доходит до оптимизации, и добавление большого количества модулей jQuery не поможет этому. Я не говорю, что это плохо, потому что это экономит вам много времени, но есть некоторые случаи, когда вы используете модуль для одной из его многочисленных функций, и вы можете заменить весь этот модуль несколькими строками jQuery-включенного javascript .
Что касается минимизации отдельных элементов DOM, упомянутый выше шаг может помочь уменьшить это, поскольку вы, вероятно, загружаете множество расширяемых функций для тех модулей, которые могут вам понадобиться или не понадобиться.
С другой стороны, мне нужно было бы увидеть источник, чтобы узнать, как сказать вам оптимизировать его, но похоже, что в отдельных шагах много избыточности, некоторые из которых, вероятно, можно урезать до функций, которые включите небольшую рекурсию или, по крайней мере, делегируйте некоторые задачи друг другу.
Хотелось бы помочь больше, но не копаясь в вашем источнике, я могу предложить только базовые стратегии. Желаем удачи!