Экономичный веб
Dec. 7th, 2012 10:06 pmЕщё раз про рендер страниц на клиенте. Мне всё настойчивей нравится мысль полного выноса вёрстки часто обновляемого контента на клиент.
Скажем, мне подумалось, что для стартапов, или бесплатных сервисов, или ограниченного бюджета это хороший способ снизить затраты на облака – компоновку и рендер считает клиент, хранение состояния сессии тоже на клиенте (а это в сумме может быть огогого и даже ОГОГО).
Рендер может деградировать в зависимости от клиента (или даже от загрузки клиента) – сервером это делать вообще убийство, а на клиенте – запросто. Самый простой способ – отсутствие rich-html редакторов на айфоне, они там просто textarea. Ещё способ – отключать например тени на нетбуках для буста отрисовки. Или там рендер ввода числа ползунком на мобильной платформе и обычным инпутом на десктопе.
Компоновка тоже может очевидно подгоняться самим клиентом под свои возможности.
Я сейчас этот подход эксплуатирую всё активнее: мы вплотную подошли к тому, что нам не очень важно, какая именно классического построения CMS под нами. Мы над ними просто надстраиваем сложное клиентское приложение, а CMS по сути только на выдачу сырых данных работает.
Это круто бустит производительность кста. По моим сайтам классического построения обращение к БД занимает менее 10% времени работы скриптов. Остальное – всяческая логика и компоновка.
Ну и объём передаваемых данных просто несопоставим – оверхэд на передачу интерфейса в современных проектах просто чудовищный. Если передавать только данные, трафик экономится кратно просто запросто. А трафик в облаках тоже стоит денег.
Итого – либо глухая статика, либо компоновка на клиенте. Архитектурная политика 2013 года наша у меня сформулировалась.