@NewTypes
На себя

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

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

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

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

Спасибо.
  • Вопрос задан
  • 3415 просмотров
Решения вопроса 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
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
05 нояб. 2024, в 17:38
150000 руб./за проект
05 нояб. 2024, в 16:31
500 руб./за проект
05 нояб. 2024, в 16:24
5000 руб./за проект