В чем польза # в 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? Я был бы признателен, если бы кто-нибудь мог направить меня (начинающего программиста, пытающегося изучить больше материалов) в правильном направлении.

Author: Slay, 2012-10-12

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!

 3
Author: Ayesh K, 2014-02-03 11:13:04

Это "хэш" в URL-адресе.

Многие браузеры поддерживают событие изменения хэша в javascript.

Насколько мне известно, изменение хэша - это революция в обратных вызовах ajax.

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

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

 3
Author: Vipin Jain, 2012-10-12 07:29:17

Смотрите ниже URL

SEO и использование!# в URL-адресе

Или прочитать его

'#! называется "hashbang", и они являются корнем всего зла в веб-разработке".

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

Слабый веб-разработчики восприняли эту работу как Евангелие. Не используйте его. Это костыль.

Веб-разработка, которая зависит от хэшбангов, - это неправильная веб-разработка.

Эта статья гораздо более хорошо сформулирована, чем я когда-либо мог быть, и посвящена фиаско Gawker media из-за их миграции на (неудачный) веб-сайт, ориентированный на хэшбанг. Он говорит вам, ЧТО происходит и почему это плохо.

Http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs

 1
Author: Abid Hussain, 2017-05-23 11:47:17

Поправьте меня, если я ошибаюсь, хэштег в этом URL-адресе будет использоваться в качестве привязки для прокрутки страницы до элемента с идентификатором. Например, я отправляю вас по URL-адресу http://example.com/sample#example , и страница будет прокручиваться (просто отображаться) в элементе (я использую div в качестве произвольного примера, это может быть что угодно).

 0
Author: paulruescher, 2012-10-12 07:28:39

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

 0
Author: Alvarez, 2012-10-12 07:34:24

Обычно "#", используемый в URL-адресе, найдет конкретный идентификатор, который находится рядом с "#" на этой конкретной странице. Используя это, мы также можем просматривать конкретный контент в середине страницы.

 0
Author: Kalai, 2012-10-12 07:38:23