Как реализовать #! ссылки на основе?
Я всегда задавался вопросом, как мгновенно перемещаться по страницам, используя #
или же #!
в URL. Многие веб-сайты, такие как Google, используют его на http://www.google.com/nexus/, когда пользователь нажимает на любую из ссылок, ничего не меняется и все открывается мгновенно, только URL-адрес, например: www.example.com/#contact
или же www.example.com/#home
Как я могу сделать это с 8 из моих страниц? (Домой, Особенности, Цены, Контакт, Поддержка)
2 ответа
Возможно, вы захотите взглянуть на базовое руководство по AJAX (например, http://marc.info/?l=php-general&m=112198633625636&w=2). Реальная причина использования URL-адресов #! чтобы они были проиндексированы Google. Если вы хотите, чтобы ваши URL-адреса в AJAX были проиндексированы Google, вам нужно будет реализовать поддержку _escaped_fragment_ (см.: http://code.google.com/web/ajaxcrawling/docs/specification.html).
Единственная причина, по которой это используется, - показать состояние расширенной страницы AJAX в URL. Таким образом, вы можете скопировать и добавить в закладки URL, чтобы вернуться в то же состояние.
Старые браузеры не позволяют изменять URL-адрес в адресной строке без перезагрузки страницы. Последние браузеры делают (поиск PushState
). Чтобы обойти это, вы можете изменить хэш URL-адреса. Эта часть обычно используется для перехода к привязке, но вы можете использовать ее для других целей, используя JavaScript.
!
не является строго необходимым для этого процесса. !
реализовано Google. Это позволяет индексировать эти URL. Обычно хэши не индексируются отдельно, потому что они отмечают только другую часть одной и той же страницы (якорь). Но, добавив !
Вы создаете shebang
или же hashbang
, который индексируется Google.
Не объясняя все здесь, вы должны найти много информации при поиске Ajax, HashBang и PushState.
Дополнение: Проверьте History.js. Это оболочка для API PushState, которая использует хеши в старых браузерах.