我如何使用www.domain.org/#!/topic/item样式的URL以及它们的名称?

时间:2011-01-11 14:16:52

标签: web-applications url url-rewriting

在许多网站上,我在地址栏中看到了www.domain.org/#!/topic/item等网址。例如,新推特将URL更改为。

我知道在HTML中使用目标时哈希的作用:www.domain.org/page.html#topic3将浏览器视口移动到锚点<a name="topic3">

此外,我认为此URL方案解决了在具有动态加载内容的页面上的地址栏中始终具有正确URL的问题。

但是如何...

  • ...我是否在服务器上处理这些网址 侧? (mod_rewrite,javascript?)
  • ...是一种名为?
  • 的技术

感谢您的帮助!

3 个答案:

答案 0 :(得分:3)

Twitter和一些热门网站在地址中使用哈希的原因是,它使网站能够在使用Ajax动态加载的内容上使用“后退”和“前进”按钮。你不必在服务器端做任何事情,诀窍是在客户端捕获地址变化。

有一个流行的jQuery插件叫做jQuery History。 - http://tkyk.github.com/jquery-history-plugin/为您完成工作,但您必须使用Ajax从服务器加载内容并将其显示在您网站的某个容器中。

一个注意,!哈希旁边是一种让搜索引擎能够抓取您的网站的方法。有关http://code.google.com/web/ajaxcrawling/docs/getting-started.html

的更多信息

答案 1 :(得分:0)

您通常采取的是window.location.hash,并在AJAX请求中将其作为参数传递给服务器。

window.onhashchange事件可以找出它何时被更改(因此何时发出新的AJAX请求),但并非所有浏览器都实现它,所以现在你最好只写一个连续的javascript间隔检查散列是否已更改。

答案 2 :(得分:0)

正如您所说,它们被动态网页使用。有很多方法可以在服务器端处理这样的url请求。 带有感叹号的表格用于SEO我相信。

请参阅http://code.google.com/intl/de-DE/web/ajaxcrawling/docs/specification.html