Я просто не могу найти удовлетворительный способ справиться с историей браузера. Конечно, есть прекрасные плагины, такие как History.js , которые отлично работают для небольших вещей. Но позвольте мне привести пример:
У меня есть многостраничная форма, которая запрашивает у пользователя разные вещи. После каждой отправки на следующую страницу (фактически то же самое, она просто меняет представление в зависимости от переменных HTTP-POST), на странице появляются некоторые анимации и изменения:
- основной контент меняется на следующую форму (с slideUp / slideDown)
- индикатор выполнения меняет свое состояние с анимацией
- ниже этой строки, некоторая информация о некоторых входных данных исчезает в
Так что сейчас это довольно просто, но я уже изо всех сил, потому что все анимации (последние 2 части) различны в каждом состоянии (разные div, разные входные источники), и я понятия не имею, как их сделать настолько общий, что я не должен указывать их отдельно.
Хотя я мог бы с этим смириться, но когда пользователь нажимает кнопку «Назад», мне приходится заново определять все эти анимации (в обратном порядке). Конечно, при загрузке содержимого проблем нет, просто файл перезагружается с помощью ajax-load:
- Я выполняю
pushstate
с входными данными как stateObj
при отправке
- чтобы я мог выполнить загрузку содержимого в связанном событии 'changechange'
Как уже говорилось, остальное сводит меня с ума.