#!в отличие от просто # в постоянную ссылку - PullRequest
2 голосов
/ 10 декабря 2011

Я проектирую систему постоянных ссылок, и я только что заметил, что Twitter и Hipmunk префикс своих постоянных ссылок имеют #!.Мне было интересно, почему это так, и если восклицательный знак, в частности, есть по какой-то причине.Разве #/ не будет работать так же хорошо, поскольку они, без сомнения, используют платформу, которая позволяет им перенаправлять запросы к определенным шаблонам с помощью парсера URL регулярного выражения?

http://www.hipmunk.com/#!BOS.SEA,Dec15.Jan02

http://twitter.com/#!/dozba

Я могу только предположить, что браузеры используют # для ссылки на элемент привязки.Поэтому восклицательный знак добавлен?

Ответы [ 2 ]

2 голосов
/ 10 декабря 2011

Это сделано для того, чтобы страница AJAX могла сканироваться [от google] для индексации - не не влияет на другую четко определенную семантику идентификатора фрагмента !

См. Обеспечение возможности сканирования приложений AJAX: начало работы

Вкратце, решение работает следующим образом: сканер находит симпатичный URL AJAX (который URL-адрес, содержащий фрагмент хеша #! ).Затем он запрашивает содержимое этого URL с вашего сервера в слегка измененной форме. Ваш веб-сервер возвращает содержимое в виде снимка HTML, который затем обрабатывается искателем.Результаты поиска покажут исходный URL.

Я уверен, что другие поисковые системы также следуют этому примеру / протоколу.

Счастливое кодирование.


Кроме того, на самом деле совершенно правильно, по крайней мере для HTML5, иметь элемент с идентификатором "! Foo", поэтому рассуждения в посте недействительны.См. Статью «Атрибут id стал еще более стильным» :

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

2 голосов
/ 10 декабря 2011

Я предполагаю, что обе страницы используют это в своем JavaScript для различия между # (ссылка на якорь) и их пользовательским #!, который загружает некоторый дополнительный контент, используя Ajax.

В этом случаепочти все остальное будет работать после знака #.

...