Для чего нужен шебанг / хэшбанг? - PullRequest
2 голосов
/ 21 октября 2011

Есть ли другое применение для шебангов / хэшбэнгов, кроме как для того, чтобы сделать содержимое AJAX просматриваемым для Google?Или это все?

1 Ответ

13 голосов
/ 21 октября 2011

Хэш при использовании в URL существует задолго до того, как был изобретен Ajax.

Первоначально он был задуман как ссылка на подраздел на странице. В этом контексте, например, у вас будет оглавление в верхней части страницы, каждая из которых будет хеш-ссылкой на раздел той же страницы. При нажатии на эти ссылки страница прокручивается вниз (или вверх) до соответствующего маркера.

Когда браузер получает URL-адрес с хешем, только часть адреса перед хешем отправляется на сервер в виде запроса страницы. Хеш-часть сохраняется браузером, чтобы разобраться с самим собой и прокрутить страницу до соответствующей позиции.

Это то, для чего изначально был предназначен хеш-синтаксис, так что это прямой ответ на ваш вопрос. Но я продолжу немного и объясню, как мы добрались оттуда до того места, где мы сейчас находимся ...

Когда Ajax был изобретен, люди хотели найти способы разместить на своем сайте одну страницу, но при этом иметь ссылки, по которым люди могли бы нажимать извне, чтобы получить прямой доступ к соответствующему контенту.

Разработчики быстро поняли, что существующий синтаксис хеша может сделать это для них, потому что можно прочитать значение хеша URL-адреса изнутри javascript. Все, что вам нужно сделать, это остановить прокрутку, когда он увидит хеш (что достаточно просто), и вы получите немного URL, который эффективно игнорируется браузером, но может быть прочитан и записан с помощью javascript ; идеально подходит для использования с Ajax. Тот факт, что Google включил хеш-часть URL-адреса в свои поиски, был просто счастливым бонусом, но он стал довольно важным, поскольку этот метод получил более широкое распространение.

Я отмечаю, что люди называют этот синтаксис хеша "shebang" или "hashbang", но технически это неверно; это просто хэш, который имеет отношение - часть слова «взрыв» слова «hashbang» относится к восклицательному знаку (термин «взрыв» - это термин для полиграфической промышленности). Некоторые URL-адреса могут действительно добавлять восклицательный знак после хеша, но только хеш имеет отношение к браузеру; строка после него полностью зависит от авторов сайта; он может включать восклицательный знак или нет по своему усмотрению, но в любом случае браузер ничего с этим не сделает. Не стесняйтесь называть это хэш-банг или шебанг, если хотите, но понимайте, что важен только хэш.

Фактический термин «shebang» или «hashbang» восходит намного дальше и относится к синтаксису #!, но не в контексте URL.

Первоначальное значение этого термина заключалось в том, что эти символы использовались в начале файла сценария Unix, чтобы сообщить обработчику сценария, на каком языке программирования написан сценарий.

Так что это действительно ответ на ваш вопрос, так, как вы его сформулировали, но, вероятно, это не то, что вы имели в виду, поскольку он вообще не имеет никакого отношения к URL.

...