O octothorpe / sinal de número / hashmark tem um significado especial em uma URL, normalmente identifica o nome de uma seção de um documento. O termo exato é que o texto após o hash é a parte âncora de um URL. Se você usa a Wikipedia, verá que a maioria das páginas possui um índice e pode pular para as seções do documento com uma âncora, como:
https://en.wikipedia.org/wiki/Alan_Turing#Early_computers_and_the_Turing_test
https://en.wikipedia.org/wiki/Alan_Turing
identifica a página e Early_computers_and_the_Turing_test
é a âncora. O motivo pelo qual o Facebook e outros aplicativos baseados em Javascript (como o meu próprio Wood & Stones ) usam âncoras é que eles querem tornar as páginas marcáveis (como sugerido por um comentário nessa resposta) ou oferecer suporte ao botão Voltar sem recarregar a página inteira do servidor .
Para dar suporte aos favoritos e ao botão Voltar, você precisa alterar o URL. No entanto, se você alterar a parte da página (com algo parecido window.location = 'http://raganwald.com';
) para um URL diferente ou sem especificar uma âncora, o navegador carregará a página inteira a partir do URL. Tente isso no Firebug ou no console Javascript do Safari. Carregar http://minimal-github.gilesb.com/raganwald
. Agora, no console Javascript, digite:
window.location = 'http://minimal-github.gilesb.com/raganwald';
Você verá a atualização da página no servidor. Agora digite:
window.location = 'http://minimal-github.gilesb.com/raganwald#try_this';
Aha! Nenhuma atualização de página! Tipo:
window.location = 'http://minimal-github.gilesb.com/raganwald#and_this';
Ainda sem atualização. Use o botão Voltar para ver se esses URLs estão no histórico do navegador. O navegador percebe que estamos na mesma página, mas apenas alteramos a âncora, para que não seja recarregada. Graças a esse comportamento, podemos ter um único aplicativo Javascript que parece estar no navegador em uma 'página', mas que possui muitas seções que podem ser marcadas como favoritos e que respeitam o botão Voltar. O aplicativo deve alterar a âncora quando um usuário digita diferentes 'estados' e, da mesma forma, se um usuário usa o botão Voltar, um marcador ou um link para carregar o aplicativo com uma âncora incluída, o aplicativo deve restaurar o estado apropriado.
Aí está: Âncoras fornecem aos programadores Javascript um mecanismo para tornar os aplicativos favoritos, indexáveis e compatíveis com o botão voltar. Esta técnica tem um nome: É uma interface de página única .
ps Há um quarto benefício para esta técnica: carregar o conteúdo da página através do AJAX e injetá-lo no DOM atual pode ser muito mais rápido do que carregar uma nova página. Além do aumento de velocidade, outros truques, como carregar certas partes em segundo plano, podem ser executados sob o controle do programador.
pps Dado tudo isso, o 'estrondo' ou ponto de exclamação é mais uma dica para o rastreador da Web do Google de que a mesma página exata pode ser carregada do servidor em um URL ligeiramente diferente. Consulte Rastreamento do Ajax . Outra técnica é fazer com que cada link aponte para um URL acessível pelo servidor e, em seguida, use Javascript discreto para transformá-lo em um SPI com uma âncora.
Aqui está o link principal novamente: O Manifesto da Interface de Página Única
shebang
era ... en.wikipedia.org/wiki/Shebang_%28Unix%29