Я рассмотрел все самые популярные вопросы здесь, в том числе те, которые ссылаются на самые популярные плагины, такие как BBQ и jQuery Address.
Однако кое-что мне не хватает. Мне нужно сделать шаг назад от всего, что я видел в этих проектах. Они предполагают некоторые базовые знания, которых у меня, видимо, нет, и я не могу понять, что на самом деле делает каждая строка кода в примерах.
Я хочу сделать четыре вещи:
1) Сделайте так, чтобы кнопка «вперед» работала так же, как в приложении без AJAX.
2) Сделайте так, чтобы кнопка «назад» работала так же, как в приложении без AJAX.
3) Отразите URL в адресной строке, чтобы его можно было добавить в закладки.
4) Создайте глубокие ссылки, чтобы можно было сканировать материалы AJAX.
И это все. Все остальное излишне. Это приложение на Rails 3.0.4, и у меня есть ссылки, которые имеют ссылку "#". Нажатие на одну из ссылок активирует функцию из application.js, которая заменяет html в div на текущей странице на большее количество ссылок, созданных из части, которая отображается из файла .js.erb.
У меня есть крошка, которая отлично работает, но с помощью кнопки «Назад» вы попадете на любой веб-сайт, на который вы смотрели, прежде чем вы посмотрели приложение.
Итак, некоторые из моих вопросов:
1) Нужно ли каждой из моих ссылок уникальное значение href вместо простого "#"?
2) Должен ли я каждый раз заменять этот div или просто скрывать его и создавать новый? Если да, должен ли каждый новый div иметь новый идентификатор?
3) Поскольку в настоящее время URL-адрес в адресной строке не изменяется, и все эти AJAX-запросы являются ПОСТАМИ, нужно ли мне что-то делать в Rails, чтобы он отвечал на один из этих новых URL-адресов, который неизменно будет вызывать GET-запрос при обращении к нему через историю браузера или кнопку назад?
Это барьеры, которые мешают мне ответить на существующие вопросы. Большое спасибо за любую помощь, которую вы можете предложить!
EDIT:
Мое приложение не основано на вкладках. Не все якоря доступны при загрузке страницы. Вот что происходит, когда пользователь нажимает на ссылку:
1) Поле в скрытой форме заполняется текстовым значением ссылки, по которой щелкнули.
2) Скрытая форма сериализуется и доставляется в действие контроллера с помощью POST.
3) Действие контроллера определяет, кто сделал запрос, выясняет, к каким данным они имеют доступ, и использует значения формы (теперь параметры) для получения списка объектов.
4) Эти объекты передаются в шаблон представления .js.erb, который, в свою очередь, отображает частичное с переданными значениями.
5) Новые ссылки возвращаются через js в шаблоне .js.erb.
По сути, поскольку мои данные не являются статичными, мне нужно выяснить, как заново сгенерировать этот запрос POST с состоянием форм КАК ЭТО БЫЛО, чтобы действительно "вернуться". Или может состояние формы и экран как-то кешироваться?