На "вау круто" не претендую, скорее в копилку нашего сообщества
[spoiler]
Данная js-функция меняет URL вашей страницы без перезагрузки (аналог устаревшего и некрасивого хеша). .
В чем плюсы такого подхода:
- сохраняются плюсы AJAX
- при копировании ссылки пользователем и вставки на другой сайт, хештег не потеряется (ни парсером стороннего сайта, ни поисковиками)
- такие переходы сохраняются полноценно в хистори (хештеги вроде не хранятся, но не уверен)
- для убогих браузеров (а-ля осел) сохранится старый хештег
- просто красиво
Минус - вам нужно будет обрабатывать URL как на стороне клиента, так и на стороне сервера.
- Для клиента вам надо слушать location.hash (на случай убогих браузеров), и если он меняется, то уже JS запрашгивать данные с сервера
- На сервере смотреть URL, и если он меняется, менять данные. Ну, это уже обработка ЧПУ фактически идет.
[spoiler]
Данная js-функция меняет URL вашей страницы без перезагрузки (аналог устаревшего и некрасивого хеша). .
<sc ript type="text/javascript">
var chLocation = f unction(loc) {
try {
history.pushState({}, '', loc);
return;
} catch(e) {}
location.hash = '#' + loc;
}
</sc ript>
<input type="button" value="Изменить URL" on click="chLocation('<?= $APPLICATION->GetCurDir();?>foo.html');" />
|
В чем плюсы такого подхода:
- сохраняются плюсы AJAX
- при копировании ссылки пользователем и вставки на другой сайт, хештег не потеряется (ни парсером стороннего сайта, ни поисковиками)
- такие переходы сохраняются полноценно в хистори (хештеги вроде не хранятся, но не уверен)
- для убогих браузеров (а-ля осел) сохранится старый хештег
- просто красиво
Минус - вам нужно будет обрабатывать URL как на стороне клиента, так и на стороне сервера.
- Для клиента вам надо слушать location.hash (на случай убогих браузеров), и если он меняется, то уже JS запрашгивать данные с сервера
- На сервере смотреть URL, и если он меняется, менять данные. Ну, это уже обработка ЧПУ фактически идет.