Задать вопрос
@skylex3
Просто учусь программированию, так что вот:)

На сколько практично разделять логику загрузки данных?

Есть сайт, при первой загрузке страницы, данные загружаются через контроллер, и отдаются во View.
При скролле - отправляю запрос на сервер через JS. Т.е использую функциональность inifinite scrolling

Вопрос: насколько это архитектурно правильно? Не является ли это костылём? Может, лучше всё делать через JS, или наоборот — только серверный рендеринг?

Меня просто смущает, что логика размазана. Часть данных — через View, часть — через JS. Хотя по сути это один и тот же контент.

Как принято делать вообще? Какие есть практики ?
  • Вопрос задан
  • 1178 просмотров
Подписаться 4 Простой 1 комментарий
Решения вопроса 2
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
"Правильность" зависит от точки зрения, требований, ограничений и прочих особенностей решения. Ваш код решает вашу проблему? Удовлетворяет вашим требованиям, предъявляемым к нему? Значит всё отлично. Если нет - то тут уже надо думать и искать более правильное решение по конкретным критериям конкретного проекта.
Ответ написан
Комментировать
Моё персональное мнение: скорость первоначальной загрузки страницы в виде, удобном для восприятия основной идеи сайта - это самое главное, что нужно в сегодняшнем мире.
Просто сами вспомните, когда вы долго ищете что-то очень нужное, кликая на ссылки в поисковике, как часто вы закрываете страницы, которые грузятся дольше нескольких секунд? Я очень часто так делаю, обычные люди тоже очень часто так делают.
Посыпав это всё приправой мобильного интернета, который иногда работает через раз в связи с определёнными событиями, скорость первой загрузки становится очень важной.

Некоторые даже идут в экстрим: дело в том, что первые 14 килобайт HTTP запроса загружаются и могут отображаться браузером практически мгновенно, остальные данные загружаются гораздо дольше. И вот некоторые пытаются в эти 14 килобайт запихнуть такие данные, которые позволят отобразить самые важные элементы страницы.

Поэтому, отложенная загрузка - это очень верное решение. Главное, постараться сделать её как можно более незаметной и плавной, нельзя делать "прыгающую" вёрстку. Ещё вам лайфхак, который я выстрадал сам: если подзагрузка данных не долгая, то лучше не отображать прогрессбары, спиннеры и т.д. Чисто психологически эти элементы вызывают ощущение тормознутости. И если запрос точно такое же время будет длиться без отображения спиннера, то он будет ощущаться быстрее. Это конечно, тонкий момент, и настравать нужно в каждом случае отдельно.

Насчёт типа рендеринга и "правильности" тут всё очень хорошо описал уважаемый VoidVolker . В каждом случае вы сами должны решить, как будет удобнее для пользователя. Лично я последнее время всё чаще использую гибридный рендеринг при помощи библиотеки HTMX
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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