В чем польза # в url
Я создаю веб-приложение и хотел бы следовать лучшим практикам в веб-индустрии.
Я понял, что многие веб-приложения используют # в своем URL-адресе.
Например, взгляните на Google analytics.
https://www.google.com/analytics/web/?hl=en#report/visitors-language/a33185827w60383872p61754588/
Этот адрес находится в адресной строке, когда я просматриваю страницу языка посетителей.
https://www.google.com/analytics/web/?hl=en#report/visitors-geo/a33185827w60383872p61754588/
Этот адрес находится в адресной строке, когда я просматриваю страницу геолокации посетителей.
Что я понимаю из этого, так это передача #отчета/посетителей - язык и #отчета/посетителей-гео
Также я понимаю, что google analytics использует iframe. Похоже, что меняется и отображается только основное поле содержимого.
Используется ли # для достижения функциональности iframe? Я был бы признателен, если бы кто-нибудь мог направить меня (начинающего программиста, пытающегося изучить больше материалов) в правильном направлении.
6 answers
Несколько ответов, но ни один из них, похоже, не охватывает внутреннюю часть.
Обычный URL-адрес, ваш собственный пример: https://www.google.com/analytics/web/?hl=en#report/visitors-language/a33185827w60383872p61754588/
Вы можете рассматривать часть после хэша (включая хэш) (она же фрагмент) как запрос на стороне клиента.
Веб-сервер никогда не узнает, что было введено после знака хэша. Это браузер, указывающий на определенный идентификатор страницы.
Для базового веб-сайта страниц, если вы введете
< a name="main">welcome< /a>
, и если ваш сайт находится по адресу http://example.com/welcome , открытие http://example.com/welcome#main "сфокусирует" ваш браузер на тексте "добро пожаловать" в теге a.
Веб-сервер не будет знать, был ли #main в URL-адресе или нет.
Данные в URL-адресе после знака вопроса называются параметрами URL-адреса. Веб-сервер может предоставлять различное содержимое по этим значениям.
Затем существует технология под названием "Ajax", которая использует эти # часть URL-адреса для доставки другого контента без загрузки страницы. Это не iframes. Используя JavaScript, вы можете инициировать изменение части URL-адреса после хэша и отправить запрос на сервер, чтобы получить определенную часть страницы. http://example.com/welcome#main2 Даже если часть с именем "main2" не существует, вы можете показать ее с помощью JavaScript.
Хэш-банг - это "#!". Это облегчает жизнь поисковым системам, указывая, что эта часть является динамической веб-страницей.
PS: Просто отметил, что это мой 100-й ответ в SO!
Это "хэш" в URL-адресе.
Многие браузеры поддерживают событие изменения хэша в javascript.
Насколько мне известно, изменение хэша - это революция в обратных вызовах ajax.
Таким образом, когда пользователь взаимодействует с любой ссылкой с хэшем, то при изменении хэша запускается событие, и вы можете применить любую вещь с помощью javascript.
Еще одна вещь заключается в том, что изменение хэша поддерживается историей браузера.
Смотрите ниже URL
SEO и использование!# в URL-адресе
Или прочитать его
'#! называется "hashbang", и они являются корнем всего зла в веб-разработке".
По сути, слабые веб-разработчики решили использовать имена #привязки в качестве хитрого взлома, чтобы заставить "веб 2.0" работать на их странице, а затем пожаловались в Google, что их рейтинг страницы пострадал. Google решил обойти свой клудж, включив хэш-банг.
Слабый веб-разработчики восприняли эту работу как Евангелие. Не используйте его. Это костыль.
Веб-разработка, которая зависит от хэшбангов, - это неправильная веб-разработка.
Эта статья гораздо более хорошо сформулирована, чем я когда-либо мог быть, и посвящена фиаско Gawker media из-за их миграции на (неудачный) веб-сайт, ориентированный на хэшбанг. Он говорит вам, ЧТО происходит и почему это плохо.
Http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs
Поправьте меня, если я ошибаюсь, хэштег в этом URL-адресе будет использоваться в качестве привязки для прокрутки страницы до элемента с идентификатором. Например, я отправляю вас по URL-адресу http://example.com/sample#example , и страница будет прокручиваться (просто отображаться) в элементе (я использую div в качестве произвольного примера, это может быть что угодно).
Ajax и хэш-метка в URL-адресе в основном используются для быстрого действия. Если у вас есть часть на вашем сайте, которая может быть видна только по событию пожара (в основном по щелчку) - было бы трудно поделиться ею. С помощью хэш-метки в URL-адресе вы можете (с помощью javascript) заставить браузер думать, что вы выполнили требуемое действие, и он отобразит соответствующую часть.
Обычно "#", используемый в URL-адресе, найдет конкретный идентификатор, который находится рядом с "#" на этой конкретной странице. Используя это, мы также можем просматривать конкретный контент в середине страницы.