Fare riferimento alla risposta di Marco Brittingham per come per lo stile, anche se non credo che sia quello che stai chiedendo qui. Io vi darò i dettagli tecnici su come funziona (e perché è abbastanza brillante).
Date un'occhiata alla barra di stato quando si posiziona il mouse sopra il link Profilo nell'intestazione ...
http://www.facebook.com/profile.php?id=514287820&ref=profile
È qui che il tag <a> sia puntato. Ora guardate la barra degli indirizzi quando si fa clic ...
http://www.facebook.com/home.php#/profile.php?id=514287820&ref=profile
Si noti il "#" identificatore di frammento / hash ? Questo dimostra in sostanza che non si è lasciato la pagina e la richiesta precedente è stato fatto con AJAX. Sono intercettare gli eventi click su questi link, e ignorando la funzionalità predefinita con qualcosa di proprio.
Per rendere questo accada con Javascript, tutto quello che dovete fare è assegnare un gestore di eventi click per quei link in questo modo ...
var header = document.getElementById('header');
var headerLinks = header.getElementsByTagName('a');
for(var i = 0, l = headerLinks.length; i < l; i++) {
headerLinks[i].onclick = function() {
var href = this.href;
//Load the AJAX page (this is a whole other topic)
loadPage(href);
//Update the address bar to make it look like you were redirected
location.hash = '#' + href;
//Unfocus the link to make it look like you were redirected
this.blur();
//Prevent the natural HTTP redirect
return false;
}
}
Una favolosa vantaggio di questo approccio è che consente il pulsante Indietro per essere funzionale (con un piccolo stratagemma aggiunto), che è stato tradizionalmente un effetto collaterale doloroso uso cronico AJAX. Io non sono sicuro al 100% di ciò che questo inganno è, ma scommetto che è in qualche modo in grado di rilevare quando il browser modifica l'identificatore di frammento (possibilmente controllando che ogni ~ 500 millisecondi).
Come nota a margine, cambiando l'hash per un valore che non può essere trovato all'interno del DOM (via elemento ID) sarà scorrere la pagina fino alla cima. Per vedere che cosa sto parlando: si scorrere verso il basso di circa 10 pixel dalla parte superiore di Facebook, esponendo la metà del menu in alto. Fare clic su una delle voci, salterà indietro fino alla parte superiore della pagina, non appena l'identificatore di frammento viene aggiornato (senza alcuna finestra ridipingere / ridisegnare ritardo).