From 8ed24d3291862fbc66e1cb58791448ba252f92dc Mon Sep 17 00:00:00 2001 From: erjemin Date: Sun, 16 Aug 2026 22:55:54 +0300 Subject: [PATCH] =?UTF-8?q?mod:=20=D0=BA=D0=B0=D0=BA=20=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=20=D0=BF=D1=80=D0=B5=D0=B2=D1=8C=D1=8E=20?= =?UTF-8?q?=D0=B3=D0=B0=D0=BB=D0=B5=D1=80=D0=B5=D0=B8=20=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B5=20"=D0=BE=D0=B1=D1=80=D1=83=D1=88=D0=B8=D1=82=D1=8C"=20?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D1=83=D0=B7=D0=B5=D1=80!?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _blueprint/plan-draft.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/_blueprint/plan-draft.md b/_blueprint/plan-draft.md index e96d7bb..c1b7597 100644 --- a/_blueprint/plan-draft.md +++ b/_blueprint/plan-draft.md @@ -311,6 +311,16 @@ pixels = image.quantize(colors=256) # или custom median-cut - Пагинация: 24 карточки на странице - `GET /gallery/{hash}` — полноэкранный просмотр SVG с кнопками "Скачать" и "Поделиться" +#### ВАЖНО: Оптимизация производительности рендеринга галереи (SVG-превью) +- **Проблема:** Десятки карточек с тысячами анимированных SVG-элементов могут перегрузить браузер клиента (CPU/GPU при одновременной перерисовке). +- **Решение для витрины галереи:** + - Карточки галереи выводятся через тег `` (изолированный контекст рендеринга). + - Для предотвращения постоянного пожирания ресурсов анимация в SVG по умолчанию спит (`animation-play-state: paused`) и оживает только при наведении (`:hover { animation-play-state: running; }`). + - Дополнительно на контейнерах карточек используется CSS-свойство `content-visibility: auto` для отключения рендера невидимых вне экрана карточек. +- **Выдача пользователю («Копировать» и «Скачать»):** + - Пользователю всегда отдается «чистый» полнофункциональный SVG со стандартно запущенной анимацией (без ограничений `animation-play-state: paused`). + - На бэкенде/сервисе при сохранении для галереи модификатор паузы/ховера может вшиваться по умолчанию либо подставляться/вырезаться на лету при выдаче пользователю. + **CSS:** - Dev: Tailwind CDN (``) + Purge content в конфиге - Prod: `collectstatic` → `whitenoise` обслуживает скомпилированную статику