它看起来不像简单的散列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
有人知道这里使用的技术吗?也许有人可以给出一个如何实现它的简单示例。
答案 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类......