Задать вопрос
@NewTypes
На себя

Лучшие практики создания одностраничных сайтов?

Как лучше всего организовать сайт с подгрузкой контента через json так, чтобы был доступен статичный html (с обратной совместимостью для старых браузеров и браузеров с отключенным js).

Я имею ввиду МИНИМИЗАЦИЮ создания лишней логики и ее дублирования в backend и front. Тянуть html втихую, как я понимаю, является порочной практикой. Второй вариант - дублирование вывода, но только в json, если страница приходит с опр параметром.

Помогите разобраться, как получать данные с бекенда лучшим образом. Как это принято, с учетом возможных будущих проблем (расширяемости, поддерживаемости)?

Спасибо.
  • Вопрос задан
  • 3417 просмотров
Подписаться 3 Оценить 2 комментария
Решения вопроса 1
Раз уж вы упомянули Rails - то дам небольшую справку по этому вопросу.
Для этого существует специальный gem trubolinks. В Rails 4.0 и выше он включён по-умолчанию. Его суть как-раз таки в том, что turbolinks.js перехватывает клик по ссылке, и на адрес, куда вы хотели перейти - отправляет запрос в json, получает ответ в json, после чего перерисовывает внешний вид страницы, и меняет в браузере её адрес.
Но такой подход не подразумевает в принципе одностраничные сайты. Тут суть в том, что мы прогружаем с сервера только то, что нам нужно для отображения.
А вообще самый общий ответ простой - сервер должен уметь отдавать по каждому адресу ответ в том виде, в котором он получает запрос: если это был обычный GET или POST запрос - возвращает HTML-страницу. Пришёл запрос на json - отдаёт json
Например в Rails если по запросу /users/show/1 возвращается html страница, то json будет возвращаться по адресу /users/show/1.json, xml - /users/show/1.xml
То есть самое простое правило выглядит так система по любому адресу сайта должна уметь отдавать как полный html, так частичный, так и json. Чтобы любой пользователь, открывший какую-то страницу мог взять её адрес, переслать другому, и тот увидел бы аналогичное (вне зависимости от истории его нахождения и действий на сайте)
Но я не могу понять - как это соотносится с одностраничными сайтами? Это лишь методика перерисовки изображения страницы без полной её перезагрузки.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Лучше всего не делать одностраничных сайтов
Ответ написан
Комментировать
sabramovskikh
@sabramovskikh
На пользователей без JS не ориентируйся, они прошлый век.
Что ты хочешь тянуть? У тебя будет динамически меняться контент?
Если нет никакой динамики делай на HTML
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы