-
En septiembre del año pasado, Twitter renovó su versión. Un cambio significativo es que se agregó el símbolo "#!" a la URL. Por ejemplo, la URL de la página de inicio del usuario antes de la revisión es
http://twitter.com/nombre de usuario
Después de la revisión, se convirtió
http://twitter.com/#!/nombre de usuario
Esta es la primera vez que un sitio web convencional utiliza "#" en URL importantes a gran escala. Esto muestra que se está reconociendo el papel del signo almohadilla. Este artículo se basa en el artículo de HttpWatch para clasificar todos los puntos de conocimiento importantes relacionados con el signo de libra.
1. El significado de #
#Representa una posición en la página web. El carácter de la derecha es el identificador del puesto. Por ejemplo,
http://www.example.com/index.html#PRint
Representa la posición de impresión de la página web index.html. Después de que el navegador lea esta URL, desplazará automáticamente la posición de impresión al área visible. Hay dos formas de especificar un identificador para la ubicación de una página web. Uno es usar puntos de anclaje, como <a name="print"></a>, y el otro es usar atributos de identificación, como <div id="print" >.
2. Las solicitudes HTTP no incluyen #
# se utiliza para guiar las acciones del navegador y es completamente inútil en el lado del servidor. Por lo tanto, # no se incluye en la solicitud HTTP.
Por ejemplo, visite la siguiente URL,
http://www.example.com/index.html#print
La solicitud real realizada por el navegador es esta:
OBTENER /index.html HTTP/1.1
Anfitrión: www.ejemplo.com
Como puede ver, solo se solicita index.html y no hay ninguna parte "#print".
3. Caracteres después de #
El navegador interpretará todos los caracteres que aparezcan después del primer # como un identificador posicional. Esto significa que ninguno de estos caracteres será enviado al servidor.
Por ejemplo, la siguiente URL pretende especificar un valor de color:
http://www.ejemplo.com/?color=#fff
Sin embargo, la solicitud real realizada por el navegador es:
OBTENER /?color= HTTP/1.1
Anfitrión: www.ejemplo.com
Como puede ver, se omite "#fff". Sólo si # se transcodifica a %23, el navegador lo tratará como un carácter literal. Es decir, la URL anterior debería escribirse como:
http://ejemplo.com/?color=%23fff
4. Cambie #No activar la recarga de la página web
Simplemente cambie la parte después de #, el navegador solo se desplazará a la posición correspondiente y no recargará la página web.
Por ejemplo, de
http://www.example.com/index.html#ubicación1
Cambiar a
http://www.example.com/index.html#location2
El navegador no volverá a solicitar index.html del servidor.
5. Cambiar # cambiará el historial de acceso del navegador
Cada vez que cambie la parte después de #, se agregará un registro al historial de acceso del navegador. Utilice el botón "Atrás" para regresar a la posición anterior. Esto es particularmente útil para aplicaciones Ajax, donde se pueden usar diferentes valores # para representar diferentes estados de acceso, y luego se le puede dar al usuario un enlace para acceder a un determinado estado. Vale la pena señalar que las reglas anteriores no se aplican a IE 6 e IE 7, no aumentarán el historial debido al cambio de #.
6. window.location.hash lee # valor
La propiedad window.location.hash se puede leer y escribir. Al leer, se puede utilizar para determinar si el estado de la página web ha cambiado; al escribir, se creará un registro del historial de acceso sin recargar la página web.
7. evento de cambio de hash
Este es un evento nuevo en HTML 5. Este evento se activará cuando cambie el valor #. IE8+, Firefox 3.6+, Chrome 5+, Safari 4.0+ admiten este evento.
Hay tres formas de utilizarlo:
ventana.onhashchange = func;
<cuerpo onhashchange="func();">
window.addEventListener("hashchange", func, false);
Para los navegadores que no admiten onhashchange, puede usar setInterval para monitorear los cambios en location.hash.
8. El mecanismo de rastreo de Google
De forma predeterminada, las arañas web de Google ignoran la parte # de la URL.
Sin embargo, Google también estipula que si desea que el motor de navegación lea el contenido generado por Ajax, puede usar "#!" en la URL, y Google convertirá automáticamente el contenido que le sigue en el valor de la cadena de consulta _escaped_fragment_. .
Por ejemplo, Google descubrió que la URL de la nueva versión de Twitter es la siguiente:
http://twitter.com/#!/nombre de usuario
Se rastreará automáticamente otra URL:
http://twitter.com/?_escaped_fragment_=/nombre de usuario
A través de este mecanismo, Google puede indexar contenido dinámico Ajax.
Fuente del artículo: diario en línea de Ruan Yifeng