Wie ist Github so schnell?

12

Beim Durchsuchen von Repositorys auf Github (zum Beispiel https://github.com/mojombo/jekyll/tree/master/bin ) fühlt es sich an, als würde Ajax verwendet, und es wird nicht jedes Mal die gesamte Seite neu geladen . Allerdings ändert sich die URL wirklich (nicht erst nach dem #).

Ich habe diesen Artikel bereits gefunden, in dem sie über ihr Backend schreiben: https://github.com/blog/530-how-we-made-github-fast

Aber ist das wirklich der ganze Trick?

Meine Seiten fühlen sich nie so schnell an und ich nutze yslow bereits, um sie zu optimieren.

peq
quelle
Im IE8 scheint es nicht so schnell zu sein, was meiner Meinung nach diese HTML5-Funktion nicht unterstützt. Wenn sich die URL in IE8 ändert, scheint die gesamte Seite referenziert zu sein.
MrWhite
@ w3d Ich denke, GitHub geht davon aus, dass Sie progressiv genug sind, um etwas anderes als IE zu verwenden, wenn Sie Git verwenden. Sie haben sich möglicherweise auch entschieden, IE nicht zu unterstützen.
Sholsinger

Antworten:

7

Die URL-Änderung ist eine Mischung aus einer alten HTML-Funktion beim Aufrufen eines A-Tags mit Hashes.

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

Dies ermöglicht das Verknüpfen von Teilen derselben Seite, ohne sie neu zu laden, und ein neues HTML5-JavaScript-Fensterobjekt

window.onhashchange

Dieses neue Objekt ist eine Ereignisbehandlungsroutine, die ausgelöst wird, wenn auf einen Link mit Hashes geklickt wird. Daher ist es möglich, dieses Ereignis mit JavaScript zu behandeln und den Browserverlauf und die Zurück-Schaltflächen zu aktivieren. Hier ist ein Beispiel

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

window.onhashchange = hashChanged;

Mozzila Developer Network window.onhashchange Seite

Browserübergreifendes Plug-in für jQuery-Hash-Änderungsereignisse

Victor Debone
quelle
Aber Github hat keinen Hash in der URL. Wie geht das?
Peq
3
ok, fand es: spoiledmilk.dk/blog/…
peq