Сделал постраничную навигацию без перезагрузки страницы. Была проблема - невозможно передать кому-то ссылку на нужную страницу. Единственный способ как я смог решить эту проблему это при помощи ajax:
В адресной строке например вписываем: blablabla/index.php#page=2
При загрузке страницы сначала выполняется скрипт, который уже аджаксит всю страницу:
$.ajax({
type: "POST",
cache: false,
url: 'ajax.php',
data: "hash="+document.location.hash.slice(1),
success: function($content){
$("body").html($content);
}
});
Дальше дело техники, в ajax.php хэш подхватывается через $_POST и разбивается на отдельные переменные:
$_POST['hash'] = str_replace('_', '&', $_POST['hash']);
parse_str($_POST['hash'], $arr);
$_POST = array_merge($_POST, $arr);
unset($arr);
//получаем результат в $_POST['page']
Чем мне не нравится этот метод - то что страница аджаксится не только когда это нужно, тоесть при смене страниц, но и при первой загрузке страницы. Можно ли как-то передать хэш из JS в php-переменную без аджакса? Как это дело реализовано в вконтакте, кто-нибудь знает?