Làm thế nào là github nhanh như vậy?


12

Khi bạn duyệt các kho lưu trữ trên github (ví dụ: https://github.com/mojombo/jekyll/tree/master/bin ), bạn cảm thấy như nó sử dụng ajax và không tải lại toàn bộ trang mỗi lần. Tuy nhiên, url thực sự thay đổi (không chỉ sau #).

Tôi đã tìm thấy bài viết này nơi họ viết về phần phụ trợ của họ: https://github.com/blog/530-how-we-ADE-github-fast

Nhưng đây có thực sự là toàn bộ mánh khóe?

Các trang của tôi không bao giờ cảm thấy nhanh như vậy và tôi đã sử dụng yslow để tối ưu hóa nó.


Dường như không nhanh như vậy trong IE8, mà tôi cho rằng không hỗ trợ tính năng HTML5 này. Trong IE8, khi URL thay đổi, toàn bộ trang dường như được giới thiệu.
MrWhite

@ w3d Tôi nghĩ GitHub hoặc giả sử rằng bạn đủ tiến bộ để sử dụng thứ gì đó ngoài IE nếu bạn đang sử dụng git. Họ cũng có thể đã quyết định không hỗ trợ IE.
sholsinger

Câu trả lời:


7

Thay đổi URL là sự pha trộn của một tính năng cũ của HTML khi gọi thẻ A bằng băm,

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

điều đó có thể liên kết các phần của cùng một trang mà không cần tải lại và một đối tượng cửa sổ HTML5 JavaScript mới

window.onhashchange

Đối tượng mới này là trình xử lý sự kiện, sẽ kích hoạt khi nhấp vào liên kết có băm, do đó có thể xử lý sự kiện đó bằng JavaScript và sở hữu lịch sử trình duyệt và các nút quay lại. Đây là một ví dụ

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

window.onhashchange = hashChanged;

Mozzila Nhà phát triển Mạng cửa sổ.onhashchange Trang

Trình cắm thêm trình duyệt hashtag trình duyệt chéo


Nhưng github không có hàm băm trong url. Làm thế nào được thực hiện?
peq

3
ok, tìm thấy nó: spoiledmilk.dk/blog/...
PEQ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.