2012-01-10 1 views
-1

Это не похоже на простое хэширование pushState, поскольку оно действительно меняет весь URL-адрес.изменить URL-адрес в вариант хэш-фрагмента

Нет обновления страницы + это тотальное изменение 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

Каждый знает techinque используется здесь? И, может быть, кто-то может дать простой пример того, как его реализовать.

+0

Вы пробовали либо смотреть на источник страницы, либо искать это? В любом случае, не делайте этого, это ужасно. – Marcin

+0

Также см. Это: http://code.google.com/web/ajaxcrawling/docs/specification.html – Marcin

+0

Решение @Marcin с использованием pure 'replaceState' вообще не страшно: https://github.com/blog/760-the-tree-slider - фрагмент может быть ужасным! – greut

ответ

0

Изменение URL, без обновления страницы использует очень новый API истории, в основном history.replaceState

Бенджамина Balupton написал очень хороший history.js

И я пригласить ваш проверить всю спецификацию тоже: http://dev.w3.org/html5/spec/history.html

Изменение только location.hash - легкая часть здесь.

+0

greut, я предполагаю, что он не имеет ничего общего с новой историей api, так как вышеупомянутый пример также работает в IE7,8 и 9. Я понятия не имею, как они это достигают – Marc

+0

afaik, IE7 не может изменить URL-адрес без перезагрузки страницы, так что он работает не так. – greut

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 и фронта Шаблон контроллера.

PS: Я просто переписать некоторые директивы Apache из «Режиссура Все запросы на index.php» главы 2, связанные с классом Zend_Controller из книги «Практическая Web 2.0 приложений с помощью PHP» Квентина Zervaas ...