Страницы

Поиск по вопросам

воскресенье, 21 октября 2018 г.

Как ВКонтакте, Twitter и другие сервисы генерируют страницы?

У почти у всех социальных гигантов переход на другую страницу происходит без перезагрузки. Для этого они делают запрос, в ответ на который приходит шаблон страницы и данные. Однако когда только пользователь открывает страницу они возвращают уже собранную страницу из шаблона, при этом возвращая так же ее шаблон и данные. Неужели они дублируют код страницы отдаваемой сервером и шаблоны которые отдаются javascript'у? Или есть какой то шаблонизатор способный генерировать шаблоны как для javascript'а так и для серверной части? Если кто знает такие библиотеки для python поделитесь.


Ответ

Вопрос это довольно таки обширный.
Конечно, дублировать код страницы неэффективно с точки зрения затрат на поддержку проекта. В общем случае, всегда стараются избежать любого дублирования кода и контента.
В простейшем случае обновлять всю страницу нет необходимости вообще. У сервера запрашивается лишь "сырая" информация в виде JSON / XML и на текущей странице заменяются соответствующие значения атрибутов или содержимого тегов.
В случае, когда нужно заменять большую часть контента (переход на другую страницу без перезагрузки, например), стараются повторно использовать шаблоны. Шаблоны либо запрашиваются однократно при первом использовании, либо уже внедрены в JavaScript и загружены вместе со страницей.
Могу предложить вам посмотреть на шаблонизатор mustache. Он имеет реализации для большинства используемых языков, включая Python, JavaScript и CoffeeScript. Для более глубокого изучения темы предлагаю для начала вот это – Интерактивные сайты. В частности, вот это – Повторное использование шаблонов

Комментариев нет:

Отправить комментарий