github는 어떻게 그렇게 빠릅니까?


12

github에서 리포지토리를 탐색 할 때 (예 : https://github.com/mojombo/jekyll/tree/master/bin ) ajax를 사용하는 것처럼 느껴지고 매번 전체 페이지를 다시로드하지는 않습니다. 그러나 URL이 실제로 변경됩니다 (# 바로 다음이 아니라).

나는 그들이 백엔드에 대해 쓰는이 기사를 이미 발견했다 : https://github.com/blog/530-how-we-made-github-fast

그러나 이것이 정말로 전체적인 트릭입니까?

내 페이지는 그렇게 빨리 느껴지지 않으며 이미 yslow를 사용하여 최적화하고 있습니다.


IE8에서는 그렇게 빠르지 않은 것 같습니다.이 HTML5 기능을 지원하지 않는다고 가정합니다. IE8에서는 URL이 변경되면 전체 페이지가 참조 된 것으로 보입니다.
MrWhite

@ w3d GitHub은 git을 사용하는 경우 IE 이외의 것을 사용할 수있을 정도로 진보적이라고 가정합니다. 또한 IE를 지원하지 않기로 결정했을 수도 있습니다.
sholsinger

답변:


7

URL 변경은 해시가있는 A 태그를 호출 할 때 HTML의 이전 기능을 혼합 한 것입니다.

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

다시로드하지 않고도 동일한 페이지의 일부를 연결할 수 있으며 새로운 HTML5 JavaScript 창 객체

window.onhashchange

이 새로운 객체는 이벤트 처리기이며 해시가있는 링크를 클릭하면 발생하므로 JavaScript 및 브라우저 기록 및 뒤로 버튼을 사용하여 해당 이벤트를 처리 할 수 ​​있습니다. 여기 예가 있습니다

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

window.onhashchange = hashChanged;

Mozzila 개발자 네트워크 window.onhashchange 페이지

jQuery hashchange 이벤트 크로스 브라우저 플러그인


그러나 github에는 URL에 해시가 없습니다. 이것은 어떻게 이루어 집니까?
peq

3
좋아, 그것을 발견 : spoiledmilk.dk/blog/…
peq
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.