L'ottotorpe / numero-segno / hashmark ha un significato speciale in un URL, normalmente identifica il nome di una sezione di un documento. Il termine preciso è che il testo che segue l'hash è la parte di ancoraggio di un URL. Se usi Wikipedia, vedrai che la maggior parte delle pagine ha un sommario e puoi saltare alle sezioni all'interno del documento con un'ancora, come:
https://en.wikipedia.org/wiki/Alan_Turing#Early_computers_and_the_Turing_test
https://en.wikipedia.org/wiki/Alan_Turing
identifica la pagina ed Early_computers_and_the_Turing_test
è l'ancora. La ragione per cui Facebook e altre applicazioni basate su Javascript (come il mio Wood & Stones ) usano ancore è che vogliono rendere le pagine segnalibro (come suggerito da un commento su quella risposta) o supportare il pulsante Indietro senza ricaricare l'intera pagina dal server .
Per supportare il bookmarking e il pulsante Indietro, è necessario modificare l'URL. Tuttavia, se si modifica la porzione di pagina (con qualcosa di simile window.location = 'http://raganwald.com';
) in un URL diverso o senza specificare un ancoraggio, il browser caricherà l'intera pagina dall'URL. Prova questo nella console Javascript di Firebug o Safari. Load http://minimal-github.gilesb.com/raganwald
. Ora nella console Javascript, digitare:
window.location = 'http://minimal-github.gilesb.com/raganwald';
Vedrai la pagina aggiornare dal server. Ora digita:
window.location = 'http://minimal-github.gilesb.com/raganwald#try_this';
Aha! Nessuna pagina di aggiornamento! Genere:
window.location = 'http://minimal-github.gilesb.com/raganwald#and_this';
Ancora nessun aggiornamento. Usa il pulsante Indietro per vedere che questi URL sono nella cronologia del browser. Il browser nota che siamo sulla stessa pagina ma che stiamo cambiando l'ancora, quindi non si ricarica. Grazie a questo comportamento, possiamo avere una singola applicazione Javascript che appare al browser in una 'pagina' ma che ha molte sezioni con segnalibro che rispettano il pulsante Indietro. L'applicazione deve cambiare l'ancoraggio quando un utente immette "stati" diversi e allo stesso modo se un utente utilizza il pulsante Indietro o un segnalibro o un collegamento per caricare l'applicazione con un ancoraggio incluso, l'applicazione deve ripristinare lo stato appropriato.
Quindi il gioco è fatto: Anchors fornisce ai programmatori Javascript un meccanismo per creare applicazioni con segnalibri, indicizzabili e back-friendly. Questa tecnica ha un nome: è un'interfaccia a pagina singola .
ps C'è un quarto vantaggio in questa tecnica: caricare il contenuto della pagina tramite AJAX e quindi iniettarlo nel DOM corrente può essere molto più veloce del caricare una nuova pagina. Oltre all'aumento della velocità, ulteriori trucchi come il caricamento di determinate porzioni in background possono essere eseguiti sotto il controllo del programmatore.
pps Alla luce di tutto ciò, il "botto" o il punto esclamativo è un ulteriore suggerimento per il web crawler di Google che la stessa pagina esatta può essere caricata dal server in un URL leggermente diverso. Vedi Ajax Crawling . Un'altra tecnica consiste nel fare in modo che ciascun collegamento punti a un URL accessibile dal server e quindi utilizzare Javascript discreto per modificarlo in una SPI con un ancoraggio.
Ecco di nuovo il collegamento chiave: il manifesto dell'interfaccia a pagina singola
shebang
era ... en.wikipedia.org/wiki/Shebang_%28Unix%29