Да, это возможно. Я часто делаю это, чтобы сохранить состояние в хэш-части URL. В результате страница не перезагружается, но если пользователь перезагружает , они перенаправляются на нужную страницу.
При использовании этого метода URL будет выглядеть следующим образом: "/ index # page = home" или "/ index # page = about"
Вам нужно написать функцию JavaScript, которая обрабатывает навигацию, и вам понадобится содержащий div, который переписывается с содержимым, полученным из AJAX.
<a href="javascript:void(0);" onClick="link('home')">Home</a>
<a href="javascript:void(0);" onClick="link('about')">About</a>
<a href="javascript:void(0);" onClick="link('questions')">Questions</a>
<div id="content"></div>
<script type="text/javascript">
function link(page) {
location.hash = "page="+page;
loadPage(page);
}
// NOTE: This is using MooTools. Use the AJAX method in whatever
// JavaScript framework you're using.
function loadPage(page) {
new Request.HTML({
url: "/ajax/"+page+".html",
onSuccess: function(tree, elements, html) {
document.id('content').setProperty('html', html);
}
}).get();
}
</script>
Теперь вам также нужно иметь что-то, что проверяет хеш при загрузке страницы, чтобы изначально загрузить нужный контент. Опять же, это использует MooTools, но используйте любой метод onLoad, который предоставляет ваш JavaScript-фреймворк.
<script type="text/javascript">
document.addEvent('domready', function() {
parts = location.hash.split('=');
loadPage(parts[1]);
}
</script>