lightarhont
@lightarhont
python/php developer

Будущее у RestFull сайтов?

Пишу свой первый полностью RestFull проект. В основном я из бэкэнда, но давно умею верстать, при острой необходимости даже рисовать))) Поскольку занимаюсь веб разработкой достаточно давно.
И что-то полная шляпа получается. Выбрал Бэкбон + Марионет+Реквари. Вроде все хорошо идёт.

Но если взять традиционную загрузку то сервер отправил тебе ответ и всё. Дальше браузер работает, из-за малого количества скриптов в обычных сайтах - относительно мало. В результате страница рендерится достаточно быстро.

Тут же всё превращается в какую-то постоянную цепочку. Вот того не хватает подгрузи - скрипт. Вот там не хватает новой информации - получи JSON ответ.
Из-за этой цепочки отрисовка страницы идёт даже больше чем при обычном запросе. Причём возникают накладки сети чаще наверное при постоянных подгрузках скриптов и данных.
Выгода конечно есть - AMD JavaScript отлично кешируются современными браузерами. Но первый заход посетителя превращается в очень долгую загрузку.
И с ростом количества блоков-модулей все растягивается так... Что может быть рационально делать две копии сайта как у Яндекс Почты например - лёгкую и аяксовую?
  • Вопрос задан
  • 743 просмотра
Пригласить эксперта
Ответы на вопрос 5
@agnislav
JavaScript разработчик
<режим зануды>
Для начала позвольте вас поправить. Термина RestFull не существует. Есть термин RESTful - то бишь, соответствие принципам REST тотально, на 100%. На практике же зачастую оказывается, что попытка полного соответвия стандартам сильно усложняет жизнь.

А то, что вы описали, как уже правильно подметил index0h, называется SPA.
</режим зануды>

По сути вопроса могу предположить 2 проблемы:
  1. Долгая первоначальная загрузка страницы
  2. "Тормоза" с обновлением

По первой проблеме уже отписались Игорь и Юрий. Идеальный вариант - пререндер на сервере, если позволяет технология. Если не позволяет, то хорошо решает проблему второе решение - подготовка всех данных на сервере и передача их в теле ответа как JSON.

Если имеет место быть вторая проблема, могу посоветовать разве что проанализировать текущую архитектуру - почему идёт один запрос на бекенд, ответ анализируется на фронтенде, после чего идёт очередной запрос (и т.д., и т.п). Посмотрите в сторону спецификации JSON-API - в описании есть много интересных мыслей, например передача в одном запросе сопутствующих объектов. Если же действительно не обойтись без постоянных запросов клиент <=> сервер - может стоит посмотреть в сторону сокетов?

Насчёт создания и поддержки двух версий продукта - аяксовой и "лёгкой" - это вопрос не технический. Это вопрос требований, вашего потребителя, его нужд и его возможностей, а также вашего бюджета.
Ответ написан
Комментировать
zo0m
@zo0m
full stack developer
Возможно, имеет смысл часть данных для JS-а готовить сразу на сервере, и, грубо говоря, делать так:
<script>
var prepairedValuesJSON = {} // <<< вот сюда на сервере готовить данные,  паковать в JSON и вставлять.
// ...
</script>

Чтоб меньше колов с фронтабыло.
Ответ написан
Комментировать
voidnugget
@voidnugget
Программист-прагматик
Я лично выбрал для себя реакт, так как он спокойно пререндерится в node.js и с небольшими плясками с cqrs-es'ом его можно заставить очень и очень хорошо работать, но это не для простых смертных и большинству адептов недоступно. Будущее есть - нормальных инструментов нет.
Ответ написан
index0h
@index0h
PHP, Golang. https://github.com/index0h
То, что вы называете RestFull - имеет немного другое имя: SPA.
Взгляните на catberry
Ответ написан
Комментировать
JuSay
@JuSay
Мне почему-то кажется, что ты что-то не верно делаешь
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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