Особое значение в URL имеет знак octothorpe / number-sign / hashmark, который обычно идентифицирует имя раздела документа. Точный термин таков, что текст, следующий за хешем, является якорной частью URL. Если вы используете Википедию, вы увидите, что большинство страниц имеют оглавление, и вы можете переходить к разделам в документе с помощью якоря, например:
https://en.wikipedia.org/wiki/Alan_Turing#Early_computers_and_the_Turing_test
https://en.wikipedia.org/wiki/Alan_Turing
идентифицирует страницу и Early_computers_and_the_Turing_test
является якорем. Причина, по которой Facebook и другие приложения на основе Javascript (например, мои собственные Wood & Stones ) используют привязки, заключается в том, что они хотят сделать страницы закладками (как это предусмотрено комментарием к этому ответу) или поддерживают кнопку возврата, не перезагружая всю страницу из сервер .
Для того, чтобы поддерживать закладки и кнопку «Назад», вам нужно изменить URL. Однако, если вы измените часть страницы (с чем-то вроде window.location = 'http://raganwald.com';
) на другой URL или без указания привязки, браузер загрузит всю страницу из URL. Попробуйте это в Firebug или консоли Javascript Safari. Загрузка http://minimal-github.gilesb.com/raganwald
. Теперь в консоли Javascript введите:
window.location = 'http://minimal-github.gilesb.com/raganwald';
Вы увидите обновление страницы с сервера. Теперь введите:
window.location = 'http://minimal-github.gilesb.com/raganwald#try_this';
Ага! Нет обновления страницы! Тип:
window.location = 'http://minimal-github.gilesb.com/raganwald#and_this';
Все еще нет обновления. Используйте кнопку назад, чтобы увидеть, что эти URL-адреса в истории браузера. Браузер замечает, что мы находимся на той же странице, но просто меняем привязку, поэтому он не перезагружается. Благодаря такому поведению у нас может быть одно Javascript-приложение, которое в браузере отображается на одной «странице», но имеет много закладок, которые относятся к кнопке «Назад». Приложение должно изменить привязку, когда пользователь входит в различные «состояния», а также, если пользователь использует кнопку «Назад», закладку или ссылку для загрузки приложения с включенной привязкой, приложение должно восстановить соответствующее состояние.
Итак, у вас есть: Anchors предоставляют программистам Javascript механизм создания приложений, которые можно добавлять в закладки, индексировать и использовать кнопки назад. Эта техника имеет название: это одностраничный интерфейс .
ps У этого метода есть четвертое преимущество: загрузка содержимого страницы через AJAX с последующим внедрением его в текущий DOM может быть намного быстрее, чем загрузка новой страницы. Помимо увеличения скорости, под контролем программиста могут выполняться дополнительные приемы, такие как загрузка определенных частей в фоновом режиме.
pps Учитывая все это, «грохот» или восклицательный знак - это еще один намек поисковику Google о том, что точно такую же страницу можно загрузить с сервера по несколько другому URL-адресу. Смотрите Ajax Crawling . Другой метод заключается в том, чтобы каждая ссылка указывала на доступный для сервера URL-адрес, а затем использовала ненавязчивый Javascript для преобразования его в SPI с привязкой.
Вот снова ключевая ссылка: Манифест об одностраничном интерфейсе
shebang
было ... en.wikipedia.org/wiki/Shebang_%28Unix%29