Страницы

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

суббота, 14 декабря 2019 г.

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

#python #шаблоны #javascript #html


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


Ответы

Ответ 1



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

Ответ 2



Есть некоторые фреймворки/библиотеки для создания универсальных (isomorphic) приложений, где "рендерить" может и клиент и сервер. Например, Redux. Гуглить в сторону "Изоморфное Приложение с React и Redux"

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

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