Предположительно, Rails работает так же, как и любой другой основной фреймворк.Как правило, вы хотите, чтобы ваши AJAX и GET запросы хорошо работали вместе.Итак, представьте, что у вас есть этот URL:
http://www.example.com/messages
Если вы перейдете сюда, вы загрузите раздел сообщений вашего сайта без необходимости вызова AJAX.Однако, если вы перейдете на:
http://www.example.com/#/messages
Вы попадете на www.example.com и можете использовать AJAX для отправки части "/ messages"на ваш сервер, где он может интерпретировать его как запрос к этому контроллеру, чтобы получить представление этих сообщений (или как бы вы его не настроили).Это техника, которую я видел как hijax, потому что вы можете перетекать свою страницу реальными элементами привязки, которые правильно ссылаются на
http://www.example.com/messages
или
http://www.example.com/maps
Но в своем javascript вы можете отменить действие ссылки и перенаправить браузер на:
http://www.example.com/#/messages
или
http://www.example.com/#maps
Теперь, когда у вас есть другая функция javascript, которая прослушивает изменения в хэш-теге, она делает то же самое, как если бы вы просто перешли по этой ссылкенепосредственно ... то есть отправляет "/ maps" на сервер, заставит сервер его интерпретировать и отбросит необходимый HTML-контент, которым вы хотите заполнить страницу.Таким образом, поисковые системы могут сканировать ваш сайт, и вы можете получить пользовательский интерфейс, который отлично работает для людей с и без javascript.
Теперь для загрузки дополнительных функций Javascript после того, как страница уже загружена, вы можете, я полагаю,просто используйте Javascript для вставки нового тега и добавьте источник туда, где находится ваш новый скрипт.Вы можете легко сделать это, используя метод .getScript () jQuery:
http://api.jquery.com/jQuery.getScript/
Относительно того, где находится весь этот скрипт ... Я думаю, это решать вам или Rails.Возможность разобрать хеш URL - это то, что вам обязательно нужно, чтобы все это собралось вместе.Для этого у вас есть опция нескольких библиотек jQuery:
Обнаружение изменения кнопки Back / Hash в URL
Надеюсь, это поможет ..