it-swarm.com.de

Wie ist Github so schnell?

Beim Durchsuchen von Repositorys auf Github (z. B. 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.

12
peq

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 Page

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

7
Victor Debone