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