2011-07-03 19 views
10

Tôi đã nghiên cứu cách tốt nhất để sử dụng lịch sử HTML5 của api aka psuhState với một dự phòng thích hợp cho các trình duyệt HTML4.Làm thế nào Github làm pushState mà không có thẻ băm?

Github sử dụng api lịch sử để duyệt cây của nó (đường dẫn sau chỉ là một ví dụ, không phải là thư viện github sử dụng):

https://github.com/browserstate/History.js/

Những gì tôi không thể hiểu là cách họ xử lý này chức năng cho các trình duyệt HTML4 như Firefox 3.5?

Tôi đã xem xét, cụ thể là history.js (được liên kết ở trên) để xử lý loại điều này. Nhưng nó đòi hỏi một triển khai hash # cho các trình duyệt HTML4 mà tôi muốn tránh.

Nếu bạn truy cập Github và duyệt qua cây thư mục bằng trình duyệt HTML4, nó trông giống hệt với trình duyệt HTML5 (trạng thái url, tức là).

Nếu tôi vô hiệu hóa JavaScript trong FF3.5, một URL mà trước trông như thế này:

https://github.com/browserstate/history.js/tree/master/tests

bây giờ trông như thế này:

https://github.com/browserstate/history.js/tree/a32e91aa1fe5909a29abb690a37f6c129e98068e/tests

Bất kỳ suy nghĩ?

Trả lời

15

GitHub sử dụng http://pjax.heroku.com/

Đối với các trình duyệt không hỗ trợ pushState nó chỉ đơn giản làm giảm đến hành vi đầy đủ tải trang nhàm chán cũ bình thường.

+0

Vì vậy, đối với hành vi dự phòng đó, điều đó có nghĩa là Github có thể tạo các thư mục đó trên máy chủ không? Hoặc là họ tạo ra các thư mục trên bay bằng cách nào đó? Tôi đang bối rối về cách họ vận hành kỹ thuật dự phòng? – Yahreen

+0

Thư mục? ... – Tekkub

+0

Họ có đang tạo cấu trúc thư mục trên máy chủ không? – Yahreen

7

Responsive web design from the future là bản trình bày slide 96 từ Kyle Neath, một nhà thiết kế hoạt động tại GitHub, có thể giúp bạn.

pushState. replaceState. Hashbangs. AJAX. PJAX. Củ cải. Gấu. Battlestar Galactica.

Thiết kế web đáp ứng nhiều hơn kích thước màn hình của bạn. Bài viết này nói về cách GitHub xử lý các liên kết, thanh url , cập nhật một phần trang và giải thích lý do tại sao tôi cho rằng lịch sử HTML5 API là điều quan trọng nhất xảy ra với phát triển front end kể từ Firebug.

Các vấn đề liên quan