将url更改为哈希片段变体

时间:2012-01-10 15:23:11

标签: ajax url uri

它看起来不像简单的散列pushState,因为它真的改变了整个url。

没有页面刷新+它通过将其全部关闭并将其作为哈希片段再次推送到URL来完全更改URL。请查看以下示例。

访问例如网址: http://www.couverts.nl/restaurant/13233/jo-van-den-bosch/den-bosch

立即变为: http://www.couverts.nl/#/restaurant/13233/jo-van-den-bosch/den-bosch

有人知道这里使用的技术吗?也许有人可以给出一个如何实现它的简单示例。

2 个答案:

答案 0 :(得分:0)

在没有页面刷新的情况下更改URL会使用最新的历史记录API,主要是history.replaceState

Benjamin Balupton撰写了非常好的history.js

我也邀请您查看整个规范:http://dev.w3.org/html5/spec/history.html

仅更改location.hash是一个简单的部分。

答案 1 :(得分:0)

我也在关注这个问题:Apache重写指令怎么样?一个快速而肮脏的将是:

RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} -f
RewriteCond %{SCRIPT_FILENAME} -d
RewriteRule ^(.*)$ index.php/#/$1

然后index.php读取路径做一些工作,只需向客户端

发送一个标头
header('Location: http://www.example.com/#/bla/bla')

这背后的整个想法当然是AJAX和Front Controller模式。

PS:我刚刚从Quentin Zervaas的“Practical Web 2.0 Applications with PHP”一书中重写了第2章“与Dirend All Request to index.php”中的一些Apache指令相关的Zend_Controller类......