Github nasıl bu kadar hızlı?


12

Github'daki depolara göz attığınızda (örneğin https://github.com/mojombo/jekyll/tree/master/bin ) ajax kullanıyormuş gibi hissettiriyor ve her seferinde sayfanın tamamını yeniden yüklemiyor. Ancak url gerçekten değişir (sadece # işaretinden sonra değil).

Bu makaleyi zaten arka uçları hakkında yazdıkları yerde buldum: https://github.com/blog/530-how-we-made-github-fast

Ama bu gerçekten bütün iş mi?

Sayfalarım asla bu kadar hızlı hissetmiyor ve ben bunu optimize etmek için zaten yslow kullanıyorum.


IE8'de o kadar hızlı değil ki, bu HTML5 özelliğini desteklemediğini varsayıyorum. IE8'de, URL değiştiğinde sayfanın tamamı yönlendirilmiş gibi görünür.
MrWhite

@ w3d Bence GitHub, git kullanıyorsanız IE'den başka bir şey kullanmak için yeterince ilerici olduğunuzu varsayar. Ayrıca IE'yi desteklememeye karar vermiş olabilirler.
sholsinger

Yanıtlar:


7

URL değişikliği, karma içeren bir A etiketi çağrılırken eski bir HTML özelliğinin karışımıdır,

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

aynı sayfanın bölümlerini yeniden yüklemeden mümkün kılar ve yeni bir HTML5 JavaScript pencere nesnesi

window.onhashchange

Bu yeni nesne, bir karma işleyici bağlantısı tıklandığında tetiklenen bir olay işleyicisidir, bu nedenle bu etkinliği JavaScript ve olası tarayıcı geçmişi ve geri düğmeleriyle işlemek mümkündür. İşte bir örnek

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

window.onhashchange = hashChanged;

Mozzila Geliştirici Ağı window.onhashchange Page

jQuery hashchange olayı çapraz tarayıcı eklentisi


Ancak github'un url'de karma yok. Bu nasıl yapılır?
peq

3
Tamam, buldum: spoiledmilk.dk/blog/…
peq
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.