2011-10-05 130 views
0

这只是一种普遍的信息问题,以便我可以在稍后在网站中实现它,但我想知道如何facebook他们的mod_rewrite。Facebook喜欢mod_rewrite与ajax页面加载

为了更具说明性,通常当网站有任何类型的Ajax页面加载时,您会在地址栏中看到#/ page-name。在Facebook上,网址就像普通的友好网址一样。你将如何使用mod_rewrite来重写类似的东西?或者是别的什么?

+0

问题不明确。解释哪个确切的行为看起来对你来说很奇特(但很可能它不是mod_rewrite的工作)ps:我敢打赌'历史重写',但让我们等待你的进一步解释 – zerkms

+0

可能重复[Facebook和Ajax](http://脸书.stackoverflow.com/questions/5792859/facebook-and-ajax) – ifaour

回答

1

我也是,以为它是mod_rewrite。但是,由于页面是异步加载的,因此不会调用mod_rewrite。我搜索了一下,它回到了SO,并与此链接,详细说明pushState()方法,这可能有所帮助。

https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

它可能无法正常降级到不使用HTML5浏览器,但话又说回来,它可能。让我知道它是如何为你工作的。

+0

大多数使用'pushState'看过的网站优雅地降低了散列技术。 – ceejayoz

0

PushState单是不是所有浏览器和版本都很友好,所以如果你想让它很好地降级,你需要做大量的HTML5功能支持检查和什么。幸运的是,有一个很好的软件包叫做历史JS,可以很好地处理这个问题。虽然它提供了大量的选项来定制你的需求,但你基本上可以插入它并且不必担心在各种浏览器上的兼容性/降级问题。

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