Пара вопросов по поводу сайта без перезагрузки страницы.
1) Когда мы ходим по разделам ВК (Мои группы, мои сообщения), страница ведь не перезагружается?
2) Если сайт без перезагрузки, как менять URL? Допустим человек пришел по ссылке в раздел изображений, и чтобы открыть этот раздел нам нужно узнать URl (страница то одна).
3) Связка со вторым вопросом. Если сайт без перезагрузки, значит у него один .html файл? И мы его контейнер body обновляем без перезагрузки?
4) Какие еще советы по поводу сайта без перезагрузки?
history api ( habrahabr.ru/post/123106 ) для смены url , или опираясь на location.hash (aka что-то вроде site.ru/#trololo).
А насчет одного html документа - это по желанию, создавайте хоть 100500, и насчет body тоже по желанию, то есть можно и конкретный div менять, а не полностью body
1. Да, не перезагружается
2. History API habrahabr.ru/post/123106
3. AJAX-ом подгружаем контент, History API меняет url
4. Поисковая оптимизация и поддержка старых/мобильных браузеров, все должно работать и без поддержки History API
Плагин pjax для jquery https://github.com/defunkt/jquery-pjax, сам пользуюсь будут вопросы пиши.
Обновляет только тот контейнер который ты указываешь. Отлично идет в купе с Zend, YII и др. framework
Вот неплохой краткий разбор. В конце статьи есть ссылка на демо
Ключевой момент это, конечно же, использование ajax функций javascript'а. Если ajax подгрузку стринц реализовывать с помощью jQuery, то будет по проще.
Будьте осторожны, если собираетесь делать именно сайт с использованием таких технологий. Если мы говорим о WEB-приложениях (SPA, RIA, как не назови), то там все довольно отработано уже. А вот делать именно сайты с использованием такого принципа нужно уметь. Иначе огребете проблем больше, чем получите профита.
Откроете для себя AngualarJS и UI-Router. Такая связка позволяет делать навигацию внутри одной html страницы, при этом каждой вашей "виртуальной" странице будет соответсовать свой url.
Вот ссылка на страницу с демо: angular-ui.github.io/ui-router/sample/#