@TheTheThe

Какой способ организации сайта без перезагрузки лучше?

Какой способ организации сайта без перезагрузки лучше?

1) Создать много div и сделать их скрытыми. Делать видимым только тот div, раздел которого открыл пользователь.
2) Создать JSON файл, получать данные посредством ajax и .html().
3) Получать из php файла? Опять же ajax запрос, и в php файле echo.
Есть еще способы?
  • Вопрос задан
  • 2500 просмотров
Пригласить эксперта
Ответы на вопрос 4
index0h
@index0h
PHP, Golang. https://github.com/index0h
Что лучше, ложка, вилка, или нож?)) Каждый способ оптимален под свои задачи.
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Да прочитайте вы уже про Single page applications, концепцию "клиент-сервер", REST и т.д. Так же перестаньте думать "страницами". Думайте состояниями. По сути body в html это ваш MainWindow, а там уже творите что хотите. Хотите текст в диве поменять - меняйте. Хотите пол страницы переделать - меняйте.

Рекомендую вам начать с Backbone + Handlebars и плавно перейти на Angular/Ember. А может и вовсе с них начать и переходить на что-то более низкоуровневое (для развития понимания) только при недопонимании концепций этих фреймворков. Если вы знакомы с архитектурой серверных приложений - у вас то же самое будет (приблизительно) на клиенте. Только вместо базы данных будет rest api, раутинг так же, контроллеры так же будут обрабатывать конкретные состояния, добавится нормальный слой представления и возможно viewmodel. MVC изначально для интерактивных приложений создавался а не для request/response.
Ответ написан
Комментировать
@IceJOKER
Web/Android developer
Один из вариантов - фреймворки(angular к примеру).
Как я сделал для одного сайта - сначала писался просто сайт, обычный php сайт, потом захотелось осуществлять переходы без перезагрузки и сделал так:
Если в браузере есть поддержка history api, то загружаем динамически, то есть просто ajax запрос на ту страницу, на которую ведет ссылка(с preventDefault(), чтоб переход не осуществлялся , а происходило все без перезагрузки), забираем оттуда данные и меняем нужный блок на нужные данные(в моем случае - основной блок и заголовок) и все, сайт работает как с JS, так и без, как в старых , так и в новых браузерах.
а если history api нет, то обычная загрузка(лень было возиться с location.hash)

И напоследок - html5doctor.com/history-api - там же и есть примеры работы
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы