Задать вопрос

Что значат символы #! в URL некоторых сайтов?

В последнее время все чаще встречаю их идущими сразу после домена:


->music.yandex.ru/#!/album/10030

->twitter.com/#!/KremlinRussia


Это ссылка на какой-то серверный скрипт? Но почему именно так, в чем приемущество?

Я помню, у twitter ранее были адреса без этой пары, а теперь вот появились…
  • Вопрос задан
  • 26443 просмотра
Подписаться 12 Оценить Комментировать
Решения вопроса 1
sajgak
@sajgak
простой пример hash навигации (динамическая часть страницы загружается по ajax, не перезагружая основной контейнер)! нужен для того, чтобы отличать обычный якорь от ссылки. Кстати, с выходом history.pushstate в подобного вида ссылках необходимости больше нет. Правда пока не поддерживается оперой и соотвественно ие.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Часть после решетки некогда служила ссылкой на определенную часть страницы. На Хабре это до сих пор так — нажмите на ссылку с числом комментов под топиком. Если в коде страницы есть тэг
<a name="comments" …/>
, то при открытии адреса, заканчивающегося на #comments, браузер прокрутит страницу к этой ссылке.

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

Как верно замечено выше, уже существует механизм, позволяющий обходиться без этого, но он, увы, не везде работает.
Ответ написан
@1nd1go
Это означает идиотизм разработчиков: habrahabr.ru/blogs/webdev/113842/
Ответ написан
Riateche
@Riateche
Могу добавить, что скоро эти адреса могут уйти в прошлое. В новых Firefox и Chrome есть возможность через скрипты изменить основную часть адреса без перезагрузки страницы. Необходимость использования хеша там отпадает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы