GH GambleHub

Өз ара аракеттенүү ылдамдыгы жана latency UI

1) интерфейс ылдамдыгы деген эмне

Ылдамдык - бул жөн гана баракты жүктөө эмес. Бул төрт кечигүүлөрдүн суммасы:

1. Input latency - ишараттан окуяларды иштеп чыгуучуга чейин.

2. Network latency - кайтарым/кэш жооп чейин.

3. Render latency - негизги агымда иштетүү (JS/CSS/layout/paint).

4. Animation latency - кадрлардын жылмакайлыгы жана туруктуулугу.

Максаты: колдонуучу иш-аракет башталганын жана процесс кайда жылып жатканын дароо көрөт; натыйжасы алдын ала келет.

2) Адамдын кабыл алуу босогосу

≤ 50 мс - "чагылгандын ылдамдыгы" (басып чыгаруу жаңырыгы, баскычты басуу).
≤ 100 ms - "заматта" (чыкылдатуу → көрүү жооп).
≤ 200 ms - көпчүлүк UI реакцияларына жол берилет.
≤ 1000 ms - ачык прогресске/скелетке чыдамкай.

💡 10 с - колдонуучу контекстин жоготот, эскалация керек (сейв, кийинкиге калтыруу, нотификация).

3) RAIL модели жана максаттуу бюджеттер

R (жооп): кириш жооп

Click/tap → көрүү жооп ≤ 100 ms.
Focus/hover → ≤ 80-120 ms.

A (Animation): жылмакайлык

60 FPS ⇒ кадр 16. 7 ms; оор операцияларды кадрдан алып чыгуу.
'transform '/' opacity' гана анимацияланат.

I (Idle): фон милдеттери

50 мс ≤ слотторго бөлөбүз, idle-терезелерди колдонобуз.

L (Load): жүктөп алуу

TTFB ≤ 200 ms, LCP ≤ 2. 5 с, INP ≤ 200 мс, CLS ≤ 0. 1.

4) KPI жана ылдамдыгы

INP (Кийинки Paint үчүн Interaction): p75 <200 ms (жакшы), 200-500 (жакшыртуу керек).
Long Tasks (> 50 ms): LT <5% менен кадрлар үлүшү.
TTFB p75 <200 ms (кэш/Edge), LCP p75 <2. 5 б.
Биринчи колдонуучу Feedback (FUF): иш-аракет биринчи визуалдык ырастоо чейин убакыт ≤ 100 ms.
Формалар үчүн колдонулуучу убакыт: биринчи талааны киргизгенге чейин ≤ 1 с.

5) UX-тез жооп үлгүлөрү

1. Оптимисттик жаңыртуулар: Дароо UI (баланс/коюм/лайк) өзгөртүү, ката кетиргенде кайра тебүү.
2. Скелеттер, эгерде түзүлүшү белгилүү болсо, спиннердин ордуна.
3. Прогресс/этаптар: процесстин узундугу белгилүү болсо, детерминацияланган прогресс.
4. Жергиликтүү кеңештер: заматта тосттор/мамлекеттик "жөнөтүү"... ≤ 100 ms.
5. ниети боюнча алдын ала жүктөө: hover/көрүү → 'prefetch '/' preload'.

6) Техникалык кечигүү азайтуу ыкмалары

6. 1 Input → Render

мобилдик боюнча 300 ms delay алып: '<meta name = "viewport" content = "width = device-width, initial-scale = 1">'.
'addEventListener (' touchstart ', handler, {passive: true})'.
Басууну иштетүү - микро-тапшырмада же 'requestAnimationFrame' тез ырастоо үчүн.
layout-thrash качуу: окуу/жазуу layout - batchit.

6. 2 JS жана негизги агым

Бандлаларды бөлүү (code-splitting), маршруттар боюнча жүктөө.
Оор эсептөө → Web Worker.
'scheduler. postTask '/' requestIdleCallback 'фон тапшырмалары үчүн.
Критикалык CSS - inline; JS с `defer`/`async`.
Тизмелерди виртуалдаштыруу, 'content-visibility: auto', 'contain: content'.

6. 3 Рендер жана анимация

Жандандыруу 'transform/opacity'; жүздөгөн элементтерге 'height/left/box-shadow' анимацияланбайт.
'will-change' анимациянын алдында убактылуу коюу; кийин тазалоо.
Чоң PNG ордуна спрайттар/вектор; оор blur алыс.

6. 4 Тармак жана кэш

Edge-кеш (CDN), `cache-control`, `stale-while-revalidate`.
критикалык домендерге Preconnect; Early Hints (103), HTTP/2/3.
ниети боюнча Prefetch (hover/viewport).
Streaming/SSR + прогрессивдүү гидрация/аралдар.

7) Дебаунс/Троттлинг жана кезек

Дебаунс - киргизүү учурунда издөө үчүн (150-300 ms).
Trottling - үчүн scroll/resize (100-200 ms).
Тез-тез окуяларда кезек/батчинг UI-Updates (live-маалыматтар).

js const debounce = (fn, ms=200)=>{let t; return (...a)=>{clearTimeout(t); t=setTimeout(()=>fn(...a),ms)}}
const throttle = (fn, ms=120)=>{let t=0; return (...a)=>{const n=Date. now(); if(n-t>ms){t=n; fn(...a)}}}

8) Жүктөө жана пикир үлгүлөрү

Skeleton → Content (жылышсыз, белгиленген бийиктиктер).
Shimmer 1200-1600 мс, амплитуда ≤ 20%.
Оптимисттик карта: боз алдын ала + текст - маалыматтар келгенде алмаштыруу.
Ката: кыска retry-баннер, кайталоо үчүн idempotency-ачкычтар.

9) тез жооп берүү үчүн тармак стратегиялары

Критикалык аракеттер (коюм/төлөм):
  • ырастоо UI дароо (оптимисттик), арткы - idempotent;
  • Таймаутта (3-5 с) "кабыл алдык, иштетебиз" статусун көрсөтүү + фондук ретрациялар;
  • статусу үчүн WebSocket/SSE, backoff 1-2-4-8 б.

Алдын-ала маалыматтар: warm-up кэш тартиби, префетч популярдуу маршруттар.

Edge функциялары: колдонуучуга жакын валидация/агрегация.

10) Тез UI Code Snippet

Кликке дароо жооп (тармак жооп чейин feedback):
js btn. addEventListener('click', () => {
btn. classList. add ('is-busy') ;//requestAnimationFrame instant visual response (async () => {
try {
const res = await fetch('/api/action', { method: 'POST', body: payload });
if (!res.ok) throw new Error('fail');
btn. classList. add('is-done');
} catch {
btn. classList. remove('is-busy'); btn. classList. add('is-error');
}
});
});
ниети боюнча Prefetch (hover/viewport):
js const prefetch = url => fetch(url, { credentials:'include', priority:'low' }). catch(()=>{});
document. querySelectorAll('a[data-prefetch]'). forEach(a=>{
a. addEventListener('mouseenter', () => prefetch(a. href), { once:true });
const io=new IntersectionObserver(e=>{ if(e[0].isIntersecting){prefetch(a. href); io. disconnect();} });
io. observe(a);
});
CSS үчүн "арзан" анимация жана skeleton:
css
.btn. is-busy { pointer-events:none; }
.skeleton { position:relative; background: var(--bg-elevated); overflow:hidden; }
.skeleton::after {
content:""; position:absolute; inset:0;
background: linear-gradient(90deg, transparent, rgba(255,255,255,.12), transparent);
animation: shimmer 1. 4s infinite;
}
@keyframes shimmer { from { transform: translateX(-100%);} to { transform: translateX(100%);} }

11) Диагностика жана мониторинг

Талаа: RUM (талаа метриктер) p75 өлкөлөр/тармактар/түзмөктөр боюнча.
Click Trace: 'input → handler → network → paint'.
"Кызыл зоналарды" белгилөө: Long Task маркерлер, blocking-time, Slow-route тизмеси.
INP/LCP/TTFB деградацияга алерта.
Script Tests: "Click → DOM өзгөртүү" эталондук убакыт жазуу.

12) iGaming өзгөчөлүктөрү

Коюм/сатып алуу:
  • UI: Баскычтын абалын заматта бекитүү (pressed → busy), кош - тост "кабыл алынды".
  • Backend: idempotent баасы ачкычы; статус - WebSocket аркылуу; таймаут → тунук "pending".
  • UI-бюджет: FUF ≤ 100 мс, акыркы ырастоо ≤ 1 с (узак болсо - убакыт/себебин көрсөтүү).
Spin/Reveal:
  • Ылдамдатуу ≤ 200 мс, бир калыпта айлануу, өчүрүү 300-500 мс; чексиз циклдери жок.
  • Утуштарды туташтыргычтар - стробасыз, текст/сумма окулат (AAA).
Жашоо коэффициенттери:
  • Delta патч 250-1000 ms бир жолу, батчинг;
  • визуалдык diff (жебе/түс/калыңдыгы) эч кандай секирик layout;
  • hover/focus боюнча анти-кулак тактоо.
Турнирлер/рейтингдер:
  • 40-60 мс батчалар менен эсептөө, таблица сандары;
  • sticky-калпак, саптарды виртуалдаштыруу.

13) Анти-үлгүлөрү

чыкылдатуу боюнча бир заматта жооп жоктугу (тармак күтүү).
Оор анимациялар 'filter/box-shadow' жүздөгөн элементтерде.
Бир чоң JS Bandl> 1-2 MB критикалык жол.
"Боштуктагы Spinner" прогресс/скелет жок 1-2 с ашуун.
Окуу/жаздыруу layout бир тик (layout thrashing).
мобилдик Hover-only өзгөчөлүктөрү.

14) ылдамдык белгилери (дизайн системасы)

json
{
"latencyBudget": {
"tapFeedbackMs": 100,
"keyEchoMs": 50,
"hoverMs": 120,
"pressMs": 90,
"modalInMs": 240,
"toastInMs": 200
},
"webVitalsTargets": { "INP": 200, "LCP": 2500, "CLS": 0. 1, "TTFB": 200 },
"animation": {
"easing": { "std": "cubic-bezier(0. 2,0,0. 2,1)", "acc": "cubic-bezier(0. 4,0,1,1)" },
"duration": { "hover": 160, "active": 90, "overlay": 240 }
}
}

15) QA-чек тизме

Жооп

  • Click/tap → визуалдык жооп ≤ 100 ms; киргизүү → эхо ≤ 50 ms.
  • Жок 300 ms-мобилдик кечигүү.
  • INP p75 ≤ 200 мс; Long Tasks үлүшү ≤ 5%.

Жүктөө

  • TTFB ≤ 200 мс; LCP ≤ 2. 5 с; CLS ≤ 0. 1.
  • Скелеттер/прогресс ордуна "илинип" жип.

Рендер

  • Анимацияларда гана 'transform/opacity'; массивдерде "оор" көлөкөлөр жок.
  • content-visibility/узун тизмелер үчүн виртуалдаштыруу.

Тармак

  • Edge кэш, preconnect, ниети боюнча prefetch.
  • Идемпотенттүүлүк жана критикалык иш-аракеттер үчүн Retra.

A11y

  • 'prefers-reduced-motion' колдоого алынган.
  • Hover мазмуну фокус/клавиатура боюнча жеткиликтүү.

16) Дизайн системасы үчүн документтер

"Latency Budgets": босоголордун таблицасы (tap, hover, modal, toast, форма).
"Instant Feedback": оптимисттик иш-аракет үлгүлөрү + артка.
"Prefetch by Intent": гиддер жана утилиттер.
"Performance Playbook": Profile чек барактары жана RUM-алерталар.
"Do/Don 't": сандар менен тез/жай жагдайлар мисалдар.

Кыскача резюме

Өз ара аракеттенүү ылдамдыгы - бул тез жооп + алдын ала жыйынтык жеткирүү. Биринчи-feedback үчүн ыйык бюджет катары 100 мс кармап, тармакты оптималдаштыруу (Edge/кэш/prefetch), негизги агымды түшүрүп, арзан касиеттерди гана жандандыруу жана оптимисттик үлгүлөрдү колдонуу. Анда интерфейс жандуу, түшүнүктүү жана туруктуу сезилет - өзгөчө iGaming сценарийлеринде жогорку чендер жана реалдуу убакыт менен.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.