Github 有一个非常好的源代码浏览器。在 repo 中的不同路径之间导航会生成 ajax 调用以加载内容(您可以在 firebug 日志中清楚地看到)。ajax 调用返回要显示的新文件列表的 html。除了更改文件的视图列表外,url 也会更改。但是,它不像大多数 ajax 深度链接网站那样使用片段(使用 #)。在 github 上,整个 url 都发生了变化。
例如,在https://github.com/django/django的 django 存储库中,转到django
文件夹将生成 ajax 请求,https://github.com/django/django/tree/master/django?slide=1&_=1327709883334
该请求将返回文件夹的 html 内容。该链接也将更改为https://github.com/django/django/tree/master/django。如您所见,这个新链接不使用片段。
这是怎么做的?我一直认为基于 ajax 的网站必须使用 url 片段 (#) 来实现深度链接,但显然并非如此。