Github如何在没有哈希标签的情况下推送状态?

时间:2011-07-03 01:35:23

标签: html5 url github pushstate history.js

我一直在研究利用HTML5的历史api aka psuhState以及HTML4浏览器的适当后备的最佳方式。

Github使用历史api进行树浏览(以下链接只是一个示例,而不是库github使用的):

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

我无法弄清楚他们如何为HTML4浏览器(如Firefox 3.5)处理此功能?

我特别关注history.js(上面链接)来处理这类事情。但它需要HTML4浏览器的哈希#实现,我想避免。

如果您访问Github并使用HTML4浏览器浏览目录树,它看起来与HTML5浏览器相同(即url状态)。

如果我在FF3.5中禁用JavaScript,那么之前的URL就是这样的:

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

现在看起来像这样:

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

有什么想法吗?

2 个答案:

答案 0 :(得分:15)

GitHub使用http://pjax.heroku.com/

对于不支持pushState的浏览器,它只会降级为正常的旧无聊的整页加载行为。

答案 1 :(得分:7)

Responsive web design from the future是来自GitHub工作的设计师Kyle Neath的96幻灯片演示,可能对您有所帮助。

  

pushState的。 replaceState。 Hashbangs。 AJAX。 PJAX。甜菜。熊。   太空堡垒卡拉狄加。

     

响应式网页设计远远超过你的网站大小   屏幕。这个讲座是关于GitHub如何处理链接,网址   栏,部分页面更新,并解释了为什么我认为HTML5历史   API是前端开发中最重要的事情   自从Firebug。