elglin: (Default)
elglin ([personal profile] elglin) wrote2020-07-08 08:17 pm
Entry tags:

Фронтенд

Решил, больше для себя, записать важную фигню, чтобы не забыть.
В моем мире из конца 90-х с понями и радугой HTML регулярно писался руками, и многие сайты в забытом ныне броузере lynx выглядели пусть и чисто текстово, но не менее бодро, чем в гуях. Вот про CSS и HTML4 я почитать уже успел, а дальше дорога увела меня в сторону от этого дела.
Серверная генерация контента, в принципе, не так плоха при наличии хоть сколь-нибудь удобного темплейтинга вроде Jinja, да и, если что, такой контент (это же чистый и незамутненный HTML, особенно если скриптовая логика вынесена в отдельные .js) легко можно курлануть и распарсить.
Но есть нюанс. В бложеге с минималистичным интерфейсом и во всяких служебных консолях соотношение контент/рюшечки достаточно высоко. А вот если вы что-то кому-то продаете, то это отношение стремится к нулю. Данных пара килобайт, верстки килобайт сто.
И тут кого-то очень давно посетила гениальная идея, до которой я, ущербный, дотумкал только недавно, освежая в памяти, что такое CDN и зачем ее едят. А давайте отдадим клиенту абсолютно фиксированную страницу, которая потом скриптом (через AJAX или еще как) подтянет себе данные. И вот тут начинается отстрел зайцев в промышленном масштабе.
У нас пропадает динамическая генерация контента на сервере. Сервер либо отдает статику (включая саму страницу), либо маленькие шматочки данных, и естественно, что это разные сервера. А весь рендер уходит на клиента, ну так серверное-то время денег стоит, а клиентское - нет. Кроме того, поскольку и страница (и ее скрипты) теперь статика, то это все можно удвинуть на CDN, и оно будет бешено быстро грузиться.
Клиент, у которого проц раньше прохлаждался на 94%, а теперь на 91% (а пусть и на 80%) доволен - за счет CDN у него все очень быстро грузится, а то, что достается не из CDN, это ж голые данные. А сервер-то доволен еще больше. Не нужна батарея на рендеринг контента - можно голые строчки из базы пулять, фронт отрендерит. Не нужна батарея на статику - ну то есть совсем что-то чахлое не стоит, кэши надо прогреть, но потом-то львиная доля запросов до ориджина даже не дойдет.
Да и все страницы теперь статика, так что и они улетели в CDN, и из динамики осталась одна апишечка, которая, если вдуматься, частенько есть тонкая обертка над SQL. Ну или модным нынче NoSQL, один, в общем-то, хрен.

Post a comment in response:

If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org