Patrz odpowiedź Mark Brittingham za jak to styl, chociaż nie sądzę, że to, o co prosicie tutaj. dam wam szczegóły techniczne na temat, jak to działa (i dlaczego jest to dość genialne).
Spójrz na pasku stanu po najechaniu na odnośnik Profil w nagłówku ...
http://www.facebook.com/profile.php?id=514287820&ref=profile
To właśnie tam, że tag Ra jest wskazywany. Spójrzmy teraz na pasku adresu po kliknięciu go ...
http://www.facebook.com/home.php#/profile.php?id=514287820&ref=profile
Zwróć uwagę na "#" identyfikator fragment / hash ? To dowodzi, że w zasadzie nie opuściły stronę i poprzedni wniosek został złożony z AJAX. Są one przechwytywanie zdarzeń kliknąć na te linki i przesłanianie funkcjonalność domyślnego coś własnego.
Aby tak się stało z Javascript, wszystko co musisz zrobić, to przypisać obsługi zdarzenia kliknięcia tych linków jak tak ...
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;
}
}
Jeden fantastyczny zaletą tego podejścia jest to, że umożliwia przycisk Wstecz, aby być funkcjonalne (z niewielkim dodatkiem oszustwa), która tradycyjnie była bolesna skutkiem ubocznym przewlekłej użycia AJAX. Nie jestem w 100% pewien, co to jest oszustwo, ale założę się, że to w jakiś sposób wykryć, gdy przeglądarka modyfikuje identyfikator fragmentu (ewentualnie poprzez sprawdzenie go co ~ 500 milisekund).
Na marginesie, zmieniającym wartość mieszania do wartości, których nie można znaleźć w DOM (za pośrednictwem elementu ID) będzie przewijać stronę aż do szczytu. Aby zobaczyć, co mówię: przewijanie w dół o 10 pikseli od górnej Facebooku, odsłaniając połowę górnego menu. Kliknij na jeden z elementów, będzie to skok z powrotem do góry strony najszybciej jak identyfikator fragment jest aktualizowany (bez jakiegokolwiek okna repaint / odrysowywanie opóźnienie).