Jak szybko działa Github?

12

Podczas przeglądania repozytoriów na github (na przykład https://github.com/mojombo/jekyll/tree/master/bin ) wydaje się, że używa ono ajax i nie ładuje całej strony za każdym razem. Jednak adres URL naprawdę się zmienia (nie tylko po #).

Znalazłem już ten artykuł, w którym piszą o swoich backendach: https://github.com/blog/530-how-we-made-github-fast

Ale czy to naprawdę cała sztuczka?

Moje strony nigdy nie są tak szybkie i już używam yslow do ich optymalizacji.

peq
źródło
Wydaje się, że nie tak szybko w IE8, który, jak zakładam, nie obsługuje tej funkcji HTML5. W IE8, gdy zmienia się adres URL, cała strona wydaje się być odświeżana.
MrWhite
@ w3d Myślę, że GitHub albo zakłada, że ​​jesteś wystarczająco progresywny, aby używać czegoś innego niż IE, jeśli używasz git. Być może po prostu postanowili nie wspierać IE.
sholsinger

Odpowiedzi:

7

Zmiana adresu URL to połączenie starej funkcji HTML przy wywoływaniu tagu A z skrótami,

<a href="#home">Go to my home</a>
<p>TextTextTextTextTextTextText</p>
<a id="home">

dzięki czemu możliwe jest łączenie części tej samej strony w ogóle bez ponownego ładowania oraz nowy obiekt okna HTML5 JavaScript

window.onhashchange

Ten nowy obiekt to program do obsługi zdarzeń, który jest uruchamiany po kliknięciu łącza z skrótami, dzięki czemu możliwe jest obsługiwanie tego zdarzenia za pomocą JavaScript oraz możliwość przeglądania historii i przycisków wstecz. Oto przykład

function hashChanged() {
    if (location.hash === "#home") {
        showPage('home');
    }
}

window.onhashchange = hashChanged;

Okno Mozzila Developer Network. Strona wymiany

jQuery hashchange zdarzenie wtyczka między przeglądarkami

Victor Debone
źródło
Ale github nie ma skrótu w adresie URL. Jak to się robi?
peq
3
ok, znalazłem to: spoiledmilk.dk/blog/…
peq