El octothorpe / number-sign / hashmark tiene un significado especial en una URL, normalmente identifica el nombre de una sección de un documento. El término preciso es que el texto que sigue al hash es la porción de anclaje de una URL. Si usa Wikipedia, verá que la mayoría de las páginas tienen una tabla de contenido y puede saltar a secciones dentro del documento con un ancla, como:
https://en.wikipedia.org/wiki/Alan_Turing#Early_computers_and_the_Turing_test
https://en.wikipedia.org/wiki/Alan_Turing
identifica la página y Early_computers_and_the_Turing_test
es el ancla. La razón por la que Facebook y otras aplicaciones basadas en Javascript (como mi propio Wood & Stones ) usan anclas es porque quieren que las páginas se marquen (como lo sugiere un comentario en esa respuesta) o admitan el botón de retroceso sin volver a cargar toda la página desde el servidor .
Para admitir los marcadores y el botón de retroceso, debe cambiar la URL. Sin embargo, si cambia la parte de la página (con algo parecido window.location = 'http://raganwald.com';
) a una URL diferente o sin especificar un ancla, el navegador cargará toda la página desde la URL. Prueba esto en Firebug o en la consola Javascript de Safari. Carga http://minimal-github.gilesb.com/raganwald
. Ahora en la consola de Javascript, escriba:
window.location = 'http://minimal-github.gilesb.com/raganwald';
Verá que la página se actualiza desde el servidor. Ahora escriba:
window.location = 'http://minimal-github.gilesb.com/raganwald#try_this';
¡Ajá! ¡No se actualiza la página! Tipo:
window.location = 'http://minimal-github.gilesb.com/raganwald#and_this';
Todavía no hay actualización. Use el botón Atrás para ver que estas URL están en el historial del navegador. El navegador se da cuenta de que estamos en la misma página pero que solo estamos cambiando el ancla, por lo que no se vuelve a cargar. Gracias a este comportamiento, podemos tener una sola aplicación Javascript que parece estar en el navegador en una 'página' pero que tiene muchas secciones marcables que respetan el botón de retroceso. La aplicación debe cambiar el ancla cuando un usuario ingresa diferentes 'estados', y de la misma manera si un usuario usa el botón de retroceso o un marcador o un enlace para cargar la aplicación con un ancla incluida, la aplicación debe restaurar el estado apropiado.
Así que ahí lo tiene: las anclas proporcionan a los programadores de Javascript un mecanismo para crear aplicaciones que se puedan marcar, indexar y que sean fáciles de usar. Esta técnica tiene un nombre: es una interfaz de página única .
ps Hay un cuarto beneficio para esta técnica: cargar el contenido de la página a través de AJAX y luego inyectarlo en el DOM actual puede ser mucho más rápido que cargar una nueva página. Además del aumento de velocidad, se pueden realizar más trucos como cargar ciertas partes en segundo plano bajo el control del programador.
pps Dado todo eso, el "estallido" o el signo de exclamación es una pista más para el rastreador web de Google de que se puede cargar exactamente la misma página desde el servidor en una URL ligeramente diferente. Ver Ajax arrastrándose . Otra técnica es hacer que cada enlace apunte a una URL accesible para el servidor y luego usar Javascript discreto para cambiarlo a un SPI con un ancla.
Aquí está el enlace clave nuevamente: el Manifiesto de la interfaz de página única
shebang
era ... en.wikipedia.org/wiki/Shebang_%28Unix%29