Как реализовать #! ссылки на основе?

Я всегда задавался вопросом, как мгновенно перемещаться по страницам, используя # или же #! в 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, которая использует хеши в старых браузерах.

Другие вопросы по тегам