"Hash-Bang" navigazione, come viene talvolta chiamato, ...
http://whatever.com/path/to/#!/some-ajax-state
... è una soluzione temporanea per un problema temporaneo che sta rapidamente diventando un non-problema grazie alla moderna standard del browser. Con ogni probabilità, Twitter lo eliminerà gradualmente, come già sta facendo Facebook.
E 'la combinazione di diversi concetti ...
In passato, un collegamento servita a due scopi: E' caricato un nuovo documento e/o scorrere verso il basso per un ancoraggio incorporato come indicato con il hash (#).
http://whatever.com/script.php#fourth-paragraph
Tutto ciò in un URL dopo l'hash non è stato richiesto dal server, ma è stato cercato nella pagina dal browser. Tutto funziona ancora bene.
Con l'adozione di AJAX, è possibile caricare nuovi contenuti nella pagina corrente (già caricata). Con questo caricamento dinamico, sono sorti diversi problemi: 1) non c'era un URL univoco per il bookmarking o il collegamento a questo nuovo contenuto, 2) la ricerca non l'avrebbe mai visto.
Alcune persone intelligenti hanno risolto il primo problema utilizzando l'hash come una sorta di riferimento "stato" da includere nei collegamenti & segnalibri. Dopo il caricamento del documento, il browser legge l'hash ed esegue le richieste AJAX, visualizzando la pagina più le sue modifiche dinamiche AJAX.
http://whatever.com/script.php#some-ajax-state
Questo risolto il problema AJAX, ma il problema al motore di ricerca ancora esisteva. I motori di ricerca non caricano pagine ed eseguono Javascript come un browser.
Google per il salvataggio. Google ha proposto uno schema in cui qualsiasi URL con hash-bang (#!) Al posto di un semplice hash (#) suggerirebbe al bot di ricerca che c'era un URL alternativo per l'indicizzazione, che includeva una variabile "_escaped_fragment_", tra gli altri cose. Leggi qui ...
https://developers.google.com/webmasters/ajax-crawling/docs/getting-started
Oggi, con l'adozione di pushState di JavaScript nella maggior parte dei browser principali, tutto questo sta diventando obsoleto. Con lo stato pushstate, poiché il contenuto viene caricato o modificato dinamicamente, l'URL della pagina corrente può essere modificato senza causare un caricamento della pagina. Se lo desideri, questo fornisce un vero URL di lavoro per la cronologia dei segnalibri &. I collegamenti possono quindi essere fatti come sempre, senza hashes & hash-bangs.
A partire da oggi, se carichi Facebook in un browser precedente, vedrai l'hash-bang, ma un browser corrente mostrerà l'uso di pushstate.
Quando contrassegni una domanda come duplicata, sarebbe utile con un riferimento al duplicato stesso. È questo quello che intendi? http://stackoverflow.com/questions/3009380/whats-the-shebang-hashbang-in-facebook-and-new-twitter-urls-for?lq=1 –
Ora dovresti considerare seriamente la tua risposta accettata come @ BillBad ha spiegato che è eccezionalmente buono! –
@Emin ok, l'ho fatto! Non guardare indietro a questa domanda in un attimo – ixchi