Помогает ли в больших js приложения (react, vue, angular) http2?
Разбираюсь с вопросом загрузки данных в большом приложении на Vue.js и не могу понять как решают проблему загрузки данных при первом обращении к приложению.
Сейчас есть несколько блоков, которые при инициализации через Axios грузят свои данные. Получается несколько HTTP запросов. Как решают эту проблему?
Видел, кто-то при первой загрузке вставляет все данные в видео JSON прямо в HTML. Так же, можно для каждой страницы делать отдельный контроллер, который бы собирал все данные. Еще вариант, оставить несколько запросов и использовать HTTP2 (насколько эффективно это будет?)
Склоняюсь к варианту http2, с несколькими запросами, но не уверен в эффективности.
Есть какой-то best practice по этому поводу?
С подобным сталкивался. Решил проблему так, при загрузке страницы подгружал не все данные, а только малую часть (достаточную для того что бы юзер мог начать пользоваться приложением), и информацию о количестве всех данных. И после этого подгружал остальную часть данных. Для юзера это не заметно, а скорость загрузки приложения при первом обращении увеличивается в разы.
Как вариант можно использовать GraphQL.
Контроллер был один и тот же.
В параметрах запроса указывал limit (кол-во данных) и offset (смещение в списке данных). Суммарные данные передавались в хедерах.
Примерно такой ответ был в хедарах по суммарным данным
Сергей Зимоглядов, ну это вы так загружаете одну сущность, например, комментарии. Это понятно. А я задаюсь вопросом, как загрузить сразу несколько сущностей, например: 1. комментарии, 2. данные профиля, 3. блок новостей, 4. блок популярных видео. Допустим это все на одной странице, получается надо сделать 4 http запроса. В обычном приложении это делается одним запросом, который отдает html. А в JS приложениях получается несколько запросов.
http2 c пхп в классическом варианте, например, не поможет, потому что на каждый запрос все равно будет запускаться отдельный процесс на сервере, а это накладно.
очень многое от конкретного приложения зависит, а может что в вашем случае оно и не надо, эти фреймворки не панацея.