1. Содержит#Для чего нужен URL?
Включать#URL-адрес символа является URL-адресом фрагмента.#Указывает местоположение на веб-странице.
nameсоответствие значения свойстваprintиз<a>Этикетка. который:<a name="print"></a>,или
idсовпадение атрибутовprintиз<a>Этикетка. который<a id="print"></a>После совпадения браузер прокручивает раздел в верхнюю часть видимой области.
2. Http запрос не включает#
#Работает только в браузере, на сервер не влияет. Таким образом, http-запрос не будет включать#.
Посетите URL-адрес ниже
http://www.example.com/index.html#print
Фактический запрос, сделанный браузером
GET /index.html HTTP/1.1
Host: www.example.com
3. #Все следующие символы используются браузерами в качестве позиционных идентификаторов.
При отправке формы, если символ отправки имеет#символ, следующие параметры будут усечены.
4. Модификация#Не вызывает перезагрузку страницы, но изменяет историю браузера
location.href += '#caper'; //页面不会刷新
Браузер прокручивается до новой позиции, но не перезагружает всю страницу.
Однако это изменяет запись браузера, мы можем передать браузер上一页кнопку, чтобы вернуться в исходное положение.
Эта функция очень полезна для одностраничных приложений.
5. Доступ к javascript можно получить черезwindow.location.hashпрочитать или изменить#
6. Веб-паук Google по умолчанию игнорирует содержимое после #.
Веб-паук Google отвечает за сканирование содержимого веб-страниц, а также ссылок на веб-страницах, которые станут частью поискового индекса Google. Веб-паук сканирует и анализирует HTML, но, поскольку он не является программой браузера и не имеет движка javascript, javascript, используемый для загрузки и отображения контента на странице, не выполняется. Поэтому символы после # будут игнорироваться веб-пауками и захватывать только содержимое до #, например:
http://www.cnblogs.com/#casper
http://www.cnblogs.com/#chyingp
Это невыгодно как для разработчиков, так и для поисковых систем: контент (приложения), над созданием которых упорно трудились первые, имеет меньше возможностей для доступа, а вторые теряют возможность дальнейшего обогащения индекса контента, особенно когда ajax-приложений становится все больше и больше. сегодня все больше и больше.
Хеш-взрыв решения
Просто измените # на #!, реализация примерно следующая: когда веб-паук встречает #!, он автоматически#!identifierПревратиться в_escaped_fragment_=identifierпараметры формы. но:
- Буду
#изменить на!#Скажите веб-пауку: мы поддерживаем это решение:hash bang - Соответственно, наше приложение также должно иметь соответствующие возможности поддержки.
escaped_fragment=casperЗапрос GET должен предоставлять соответствующий веб-контент.
7. событие onhashchange
Это новое событие HTML 5, которое запускается при изменении значения #. IE8+, Firefox 3.6+, Chrome 5+, Safari 4.0+ поддерживают это событие.
Есть три способа его использования:
window.onhashchange = func;
<body onhashchange="func();">
window.addEventListener("hashchange", func, false);