Ответ 1
В HTML5 вы можете изменить URL-адрес:
window.history.pushState("object or string", "Title", "/new-url");
проверить http://spoiledmilk.com/blog/html5-changing-the-browser-url-without-refreshing-page/
docs: https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history#The_pushState().c2.a0method
UPDATE
Обзор того, какой браузер поддерживает новый API истории HTML5:
http://caniuse.com/#search=pushState (caniuse.com стоит закладок!)
уже есть фреймворки, которые делают тяжелую работу для вас и даже изящно относятся к общему решению хэш-тегов:
History.js изящно поддерживает API-интерфейс истории/состояния HTML5 (pushState, replaceState, onPopState) во всех браузерах. В том числе постоянная поддержка данных, заголовков, replaceState. Поддерживает jQuery, MooTools и Prototype. Для браузеров HTML5 это означает, что вы можете изменить URL-адрес напрямую, без необходимости использовать хеши. Для HTML4-браузеры вернутся к использованию старого onhashchange функциональность.
Структура базовых баз для приложений с тяжелым предоставление моделей с привязкой ключевого значения и пользовательскими событиями, коллекциями с богатым API перечислимых функций, представления с декларативным событием обработки и подключает все это к вашему существующему приложению поверх Интерфейс RESTful JSON.... Поддержка pushState существует на основе чисто выборки в Backbone. Старые браузеры, которые не поддерживают pushState, будут продолжать использовать хэш-фрагменты URL-адреса, и если URL-адрес хэша посещают pushState-browser, он будет прозрачно обновлен до истинного URL.
MooTools - это компактная модульная объектно-ориентированная инфраструктура JavaScript, разработанная для продвинутого разработчика JavaScript. [...] Управление историей через popstate или hashchange. Заменяет URL страницы без перезагрузки и возвращается к Hashchange на старших браузеры.
dojo экономит ваше время и масштабы с помощью вашего процесса разработки, используя веб-стандарты как его платформы. Его инструментарий опытных разработчиков обращается к созданию высоких качественные настольные и мобильные веб-приложения. [...] dojox.app управлять навигацией историю через стандарт HTML5 pushState и делегировать его браузеру управление историей.
... просто чтобы назвать несколько.
(!!) БУДЬТЕ ЗНАКОМ
Один важный побочный эффект при использовании pushState
(цитата из документации на базовую станцию ):
Обратите внимание, что использование реальных URL-адресов требует, чтобы ваш веб-сервер мог правильно отрисуйте эти страницы, поэтому необходимы дополнительные изменения в качестве Что ж. Например, если у вас есть маршрут/документы/100, ваша сеть сервер должен иметь возможность обслуживать эту страницу, если браузер посещает этот URL-адрес непосредственно. Для полной полномасштабной поисковой работы лучше всего иметь сервер генерирует полный HTML-код для страницы... но если это веб-сайт приложения, просто предоставив тот же контент, который у вас был бы для URL-адрес корня и заполнение остальных с помощью Backbone Views и JavaScript отлично работает.