Как подготовить полудинамичную веб-страницу с лучшей производительностью? - PullRequest
0 голосов
/ 07 сентября 2018

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

Для достижения этого может быть простое решение:
1 - Вы можете обрабатывать динамическую часть страницы на стороне клиента с помощью запроса AJAX (который не кэшируется), например одностраничные приложения.

2 - может быть другое решение, когда клиент отправляет запрос промежуточному программному обеспечению (например, API-шлюзу), и промежуточное программное обеспечение извлекает статическую часть из кэша, а динамическую часть - из внутреннего интерфейса, а затем возвращает агрегированное содержимое клиенту.

3 - На мой взгляд, худшее решение - отключить кеш.

Что делает Facebook, загружает динамическую часть при первом запросе и загружает оставшееся содержимое с запросами XHR.

Вопросы:
Какова лучшая практика для этой проблемы?
Каким будет недостаток второго решения?
Что вы думаете о верхнем меню Stackoverflow, в котором отображается ваше имя пользователя?

Спасибо заранее

1 Ответ

0 голосов
/ 19 сентября 2018

Запрос AJAX (или выборка, или любой другой запрос на основе HTTP) вполне может быть кэширован с помощью службы RESTful.

Для более детального контроля над тем, что должно кэшироваться, вы можете использовать работника сервиса, например, добавив https://developers.google.com/web/tools/workbox/ в ваше приложение.

Если ваши динамические данные должны обновляться в режиме реального времени, вам также следует взглянуть на WebSockets. В зависимости от вашего стека вы можете использовать библиотеку-обертку, такую ​​как SignalR, socket.io или просто следовать одному из руководств по http://websocketd.com/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...