LINUX.ORG.RU
ФорумTalks

Проверено: Почему клиент-сайд шаблоны не нужны.

 , ,


1

2

http://www.onebigfluke.com/2015/01/experimentally-verified-why-client-side.html

Для Ъ: там про Angular and templating и конкретно про абзац

Populating an HTML page with default data is a server-side job because there is no reason to do it on the client, and every reason for not doing it on the client. It is a needless performance hit that can easily be avoided by a server-side templating system such as JSP or ASP.

с замерами времени на десктопном/мобильном хромом до начала/конца отрисовки страницы на примере котиков.

★★★★★

Ответ на: комментарий от Xellos

А, да. В треде — перепись Ъ.

Вообще, по ссылке — замеры производительности

 — при сложности до 1000 котиков™ абсолютно пофиг, где шаблон

 — чем выше сложность — тем быстрее начало отрисовки у серверного шаблона и конец отрисовки клиентского. То есть клиентские шаблоны быстрее закончат рендеринг.

 — на мобильниках точно та же ситуация, что и на десктопе.

x3al ★★★★★
() автор топика
Последнее исправление: x3al (всего исправлений: 1)

все пацаны сворачиваемся и перестаем так делать, вася там сказал что мы делаем ерунду

umren ★★★★★
()

клиент-сайд шаблоны

Оно же для Single-Page web-applications (SPA), где сервер-сайд шаблонов просто нет.

shahid ★★★★★
()

А еще есть Single-Page Applications, а еще всякие atom-shell и node-webkit.

buddhist ★★★★★
()
Ответ на: комментарий от kim-roader

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

Stahl ★★☆
()
Ответ на: комментарий от kim-roader

да я такой, тем более я пропагандирую, что сайты без javascript современные не нужны, особенно которые выполнены в виде интерактивных приложений.

umren ★★★★★
()

Иксперты

Правильный ответ: если в lynx ваш сайт не читается, то вы не нужны.

gh0stwizard ★★★★★
()

Всё так, но как быть с динамическими формами и мобильными клиентами?
Как только доходишь до динамических форм и функционале на мобильниках, материшься и делаешь client-side.

Shadow ★★★★★
()

Это мне напоминает рассказ про офигенно интересную книгу с неразрезанными страницами.

Последний абзац:

My conclusion from all this: I hope never to render anything server-side ever again. I feel more comfortable in making that choice than ever thanks to all this data. I see rare occasions when server-side rendering could make sense for performance, but I don't expect to encounter many of those situations in the future.

Спешил поделиться сенсацией, целиком читать было некогда.

Vit ★★★★★
()
Ответ на: комментарий от t184256

все бы писали нативные приложения, дураков-то нет ввязываться в веб-говно, но у нативных приложений есть огромные проблемы с обновлениями

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

с другой стороны, на другой работе мы писали чисто веб-приложение, и выкладывали новые версии несколько раз в день. Естественно, никакого геморроя, а пользователи даже не знали что что-то там постоянно обновляется. Дешево, быстро, удобно.

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

А тупо дропать поддержку версий старше месяца и заставлять обновляться нельзя? Раз уж так не хотите API стабилизировать или расширяемое делать.

t184256 ★★★★★
()

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

outtaspace ★★★
()
Ответ на: комментарий от Vit

Я же не настолько плохой человек, чтобы спойлерить всё в описании для Ъ.

Поздравляю первого прошедшего по ссылке.

Название темы я оттуда позаимствовал, слишком красивое.

x3al ★★★★★
() автор топика
Ответ на: комментарий от t184256

У нас в остальном стабильное апи. Но на эту стабильность надо тратить силы (иначе говоря - время и деньги). Клиенты - ынтерпрайз, если что-то сломается, это будет очень неприятно.

Обновления самого софта в основном делаются чтобы фиксать баги и добавлять фичи. Проблема возникает когда у человека старая версия не работает (отсутсвует фича, присутствует баг), и новая версия не работает (фича теперь есть, но изменилось поведение, или фича никому не нравится, или старый баг вылечили - а новый принесли). Это случается очень редко, но т.к. клиенты - суровый ынтерпрайз, приходится на все эти вещи не дышать. «Не дышать» = время, деньги. Если выпустил версию которая пользователям почему-то не нравится - то поправить его можно будет только в следующем релизе через 2 недели, и то если уговоришь клиента обновиться на эту версию. Есть конечно еще и авральный режим - если случился серьезный баг, его убьют самыми жестокими методами, без этого пацифизма с «исправим в следующей версии», в некоторых случаях даже приходится править код у клиента на живом продакшен-сервере.

А в вебе этих проблем почти совсем нет. Знакомые пишут софт на GWT, у них в основном проблемы - что в древнючем Internet Explorer при сочетании каких-то мистических параметров кнопочка становится не того цвета. Нам бы такие проблемы.

stevejobs ★★★★☆
()

А вот мне интересно: насколько множество людей, жалующихся, что у них «хром сожрал всю память» и «файрфокс тормозит», пересекается с множеством людей, ратующих за SPA, толстые веб-приложения и прочее.

Deleted
()
Ответ на: комментарий от Deleted

«хром сожрал всю память» и «файрфокс тормозит»

...не коррелирует с

SPA, толстые веб-приложения и прочее.

а коррелирует с кривыми руками.
Сожрать всю память можно простеньким скриптом, что обычно и происходит. Мне тут кинули ссылку на AngularJS Mobile UI - и я как-то офигел, как он быстр на некроандройдах почти без памяти. И как тут было в разных обсуждениях, в jQuery очень много возможностей выстрелить себе в ногу, и не заметить, а потом все удивляются, почему так медленно.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 3)
Ответ на: комментарий от Deleted

Хромой и огнелис тупо не умеют освобождать ресурсы: в реале вся хрень с веб-страницы занимает память до тех пор, пока ты веб-страницу не закроешь. В итоге если долго крутить колесико мыши на "бесконечной ленте", браузер будет убит oom-killer'ом. И все из-за рукожопия погромистов, разрабатывающих браузеры, а не из-за того, что такие плохие дядьки написали динамический сайт!

А надо было бы удалять из памяти уже удаленные элементы.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

Самый простой способ сожрать всю память — с включенным adblock с жирными подписками открыть пару вкладок, заражённых кнопками соцсетей. SPA тут как бы ни при чём.

x3al ★★★★★
() автор топика
Ответ на: комментарий от Eddy_Em

Удалённые элементы удаляются, но веб-девелоперы часто не умеют нормально удалять. Ну или делают детские ошибки вроде использования console.log() для удаляемых элементов.

x3al ★★★★★
() автор топика
Ответ на: комментарий от x3al

SPA тут как бы ни при чём.

Что то говно, что это... Мне как-то без разницы.

Deleted
()
Ответ на: комментарий от Eddy_Em

Хромой и огнелис тупо не умеют освобождать ресурсы: в реале вся хрень с веб-страницы занимает память до тех пор, пока ты веб-страницу не закроешь. В итоге если долго крутить колесико мыши на «бесконечной ленте», браузер будет убит oom-killer'ом. И все из-за рукожопия погромистов, разрабатывающих браузеры, а не из-за того, что такие плохие дядьки написали динамический сайт!

А надо было бы удалять из памяти уже удаленные элементы.

Как-то я себе слабо представляю удаление чего-либо с «бесконечной страницы». Там же начало по определению никуда не удалить, ведь юзер всегда может нажать Home и попасть на начало.

Но с этими всеми бесконечными лентами на самом деле есть другая гораздо более серьёзная проблема: юзабилити. Его нет. Для чего-то более серьёзного, чем «фоточки котиков» оно не годится.

Deleted
()
Ответ на: комментарий от Deleted

Там же начало по определению никуда не удалить, ведь юзер всегда может нажать Home и попасть на начало.

Можно удалить. Если пользователь нажал Home — срабатывает эвент-хандлер на скролл, удаляет хвост и рисует голову. Тут trade-off между FPS и потреблением памяти (обычно несколько элементов вокруг видимой области таки держат в памяти прорисованными).

И да, я юзал бесконечную прокрутку на миллионы элементов просто потому, что это было в ТЗ. Занимает меньше памяти, чем то же самое в DOM (ну и, естественно, намного быстрее рендерится и приносит меньше проблем, чем то же самое статикой).

x3al ★★★★★
() автор топика
Ответ на: комментарий от x3al

Да что ты говоришь! Почему же тогда при проигрывании mjpeg (а другого потокового видео реального времени браузеры так и не научились проигрывать, позорище рукожопым!) старые кадры никак не удаляются?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Deleted

Как-то я себе слабо представляю удаление чего-либо с «бесконечной страницы»

Удаляй все, выходящее за пределы "текущий экран ±2 страницы"!

юзер всегда может нажать Home и попасть на начало

Заново подгружай начало.

Для чего-то более серьёзного, чем «фоточки котиков» оно не годится.

Очень даже годится: был бы ЛОР-API, я бы сделал юзверьскриптом человеческий ЛОР, где каждая тема была бы "бесконечной" страницей (т.е. при попадении на тему ты видел бы ОП-пост + десяток последних сообщений, новые сообщения в реальном времени вылезали бы сверху, а старые подчищались; при скролле вылезали бы более старые; а для просмотра сообщения, на которое кто-то ответил, это новое сообщение просто вылезало бы в "плавающем" div'е и сразу же после ненадобности удалялось).

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

Очень даже годится: был бы ЛОР-API, я бы сделал юзверьскриптом человеческий ЛОР, где каждая тема была бы «бесконечной» страницей (т.е. при попадении на тему ты видел бы ОП-пост + десяток последних сообщений, новые сообщения в реальном времени вылезали бы сверху, а старые подчищались; при скролле вылезали бы более старые; а для просмотра сообщения, на которое кто-то ответил, это новое сообщение просто вылезало бы в «плавающем» div'е и сразу же после ненадобности удалялось).

А теперь расскажи нам, как к этому говну ты прикрутишь поиск по странице.

Deleted
()
Ответ на: комментарий от Eddy_Em

Ты то тут при чём? Он мне нужен. И ещё переход на конкретную часть обсуждения.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Xellos

А шо, я уже на себя не похож?

А вроде по-трезвому писал...

Может, ты просто читал только мои высеры по-сини? Хочешь, сейчас еще грамм 100 спирту накачу?

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от stevejobs

поиск уже встроен в форум

Нужный мне поиск уже встроин в браузер. Тот, который по Ctrl + F.

P.S. Нет, это не значит, что поиск, встроенный в форум, можно ломать. Он тоже нужен!

Deleted
()
Ответ на: комментарий от Eddy_Em

А шо, я уже на себя не похож?

Не могут фанату KOI8-R нравиться все эти новомодные свистелки!

Deleted
()
Ответ на: комментарий от stevejobs

а зачем мне интерактив, если я не могу найти на странице нужный мне пост, потому что он уехал «вниз»? За бесконечные страницы нужно страшно карать.

leave ★★★★★
()
Ответ на: комментарий от stevejobs

а, правильно, давайте еще возьмем бабла на серваки под эластик :)

leave ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.