Simplest - используйте якоря и событие hashchange
для изменения состояния URL-адреса (вам в основном понадобится shiv для старых браузеров , таких как IE 6 и 7). Когда страница загружается впервые, проанализируйте хеш и загрузите то, что вам нужно, через ajax. (Пример библиотеки, которая поможет с этим плагином jQuery bbq
Бена Алмана .) Ваши URL в этом случае будут выглядеть так:
http://example.com/entry/point#/my/app%3Fq=1
Neater - используйте новый history
API до pushState
при изменении страницы для новых браузеров и откат на hashchange
для браузеров, которые не поддерживают новый HTML5 совершенство. (Примером библиотеки, которая помогает с этим, является плагин Ben Lupton's History.js ). Ваши URL для новых браузеров будут выглядеть так:
http://example.com/my/app?q=1
в то время как URL для браузеров, которые не поддерживают новый API, увидят hashchange
URL.
Самое лучшее - используйте полную схему маршрутизации или MVC и не изобретайте колесо заново. Примеры включают, но не ограничиваются:
Обратите внимание, что с более новым history
API вы действительно должны убедиться, что все ваши URL действительно доступны и могут использоваться без JavaScript. (Поэтому, если вы вставите http://example.com/my/app?q=1
в стек истории, вы сможете набрать этот URL в адресную строку браузера и просто перейти туда.)