GH GambleHub

Փոխազդեցության արագությունը և latency UI

1) Ի՞ նչ է ինտերֆեյսի արագությունը

Արագությունը միայն էջի բեռնումը չէ։ Սա չորս ուշացումների գումար է

1. Input latency-ը ժեստից մինչև իրադարձության վերամշակողը։

2. Network latency-ը մինչև backend/kash պատասխանը։

3. Render latency-ը հիմնական հոսքի վրա (JS/CSS/layout/paint)։

4. Animation latency-ը լողի և կադրերի բարձրացումն է։

Նպատակը 'օգտագործողը անմիջապես տեսնում է, որ գործողությունը սկսվեց և որտեղ է շարժվում գործընթացը։ իրական արդյունքը գալիս է կանխատեսելի։

2) Մարդկային ընկալման շեմերը

50 մգ - «կայծակնային» (տպագրության էխո, սեղմելով)։

100 ms - «ակնթարթ» (տեսահոլովակը տեսողական արձագանք է)։

200 ms - թույլատրելի UI ռեակցիաների մեծամասնության համար։

1000 մզ - համբերատար է ակնհայտ առաջընթացի/կմախքի հետ։

💡 10 s - օգտագործողը կորցնում է համատեքստը, անհրաժեշտ է էսկալացիա (սեյվ, հետաձգել, նոտացիա)։

3) RAIL մոդելը և բյուջեները

R (Response) 'արձագանք

Կլիք/tap-ը տեսողական արձագանք է տալիս 100 մզ։

Ֆոկուս/hover no 80-120 մզ։

A (Animation) 'լող

60 FPS-ը 16 շրջանակն է։ 7 մզ; ծանր վիրահատություններ դուրս բերել շրջանակից։

Animirum միայն «transform »/« opacity»։

I (Idle) 'ֆոնային առաջադրանքներ

Մենք կիսում ենք 50 մզ, օգտագործում ենք idle պատուհանը։

L (Load) 'բեռնումը

TTFB 35200, LCP 382։ 5 գ, INP 24200 ms, CLS 240։ 1.

4) KPI-ն և արագության ալտերտերը

INP (Interaction to Next Paint): p75 <200 ms (լավ), 200-500 (պետք է բարելավել)։

Long Tasks (> 50 ms) - LT <5 տոկոսից կադրերի մասը։

TTFB p75 <200 ms (kes/Edge), LCP p75 <2։ 5 ս

First User Feedback (FUF): ժամանակը մինչև գործողության առաջին տեսողական ապացույցը 100 մզ էր։

Time-to-Usable-ը ձևերի համար '361 մինչև առաջին դաշտը։

5) UX-patters ակնթարթային արձագանք

1. Լավատեսական նորարարություններ. Մենք անմիջապես փոխում ենք UI-ը (հավասարակշռություն/գլխարկ/հավաք), սխալվում ենք։

2. Սկելետոնները սպինների փոխարեն, եթե հայտնի է կառուցվածքը։

3. Առաջընթացը/փուլերը 'դետերմինացված առաջընթացը, եթե գործընթացի երկարությունը հայտնի է։

4. Տեղական հուշումներ 'ակնթարթային թոստեր/սթեյթ «Ուղարկենք»... 36100 մզ։

5. Նախնական բեռնումը 'hover/տեսանելիություն www.fetch '/' preload "։

6) Հետաձգումների նվազեցման տեխնիկական մեթոդներ

6. 1 Input → Render

Հեռացրեք 300 ms winday բջջային:

Passive-ի լսողները scroll/tacha-ի համար '"adddeVentListener (" touchstart ", handler," passive: www.com) "։

Կլիկի մշակումը միկրոշրջանում կամ «requestaNiment Frame» է արագ տեղադրելու համար։

Խուսափեք layout-thrash: Ընթերցումներ/ձայնագրություններ layout - batching.

6. 2 JS և հիմնական հոսքը

Բաժանեք խմբերը (code-splitting), բեռնեք երթուղիներով։

Web Worker-ի ծանր հաշվարկները։

Օգտագործեք 'scheduler։ PosttTask '/« requestiDleCallback »-ը ֆոնային խնդիրների համար։

Քննադատական CSS-inae; JS с `defer`/`async`.

Ցուցակների վիրտուալիզացիա, "entertent-visibility: www.am: entain: entain '։

6. 3 Ռենդեր և անիմացիա

Անիմիրուրու 'transform/opacity "; մի անիմիրացված «height/left/big-shadow» հարյուրավոր տարրերի վրա։

«will-change» տեղադրել ժամանակավորապես անիմացիայի առջև։ հեռացնել դրանից հետո։

Սպրեյտներ/վեկտոր հսկայական PNG-ի փոխարեն։ խուսափեք heavy blur.

6. 4 Ցանց և քեշ

Edge-кеш (CDN), `cache-control`, `stale-while-revalidate`.
Preconnium քննադատական օրինագծերի համար։ Early Hints (103), HTTP/2/3.

Prefetch մտադրությամբ (hover/view.ru)։

Streaming/SSR + առաջադիմական հիդրոմ/կղզիներ։

7) Դեբաունս/տրոտլինգ և հերթեր

Դեբաունսը 'մուտքագրման ընթացքում որոնելու համար (150-300 մզ)։

Trottling-ը scroll/resize-ի համար (100-200 մզ)։

Հերթերը/UI-2019 բատչինգը հաճախակի իրադարձությունների ժամանակ (նախկին տվյալները)։

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 no Engent (առանց հերթափոխի, ֆիքսված բարձրություններ)։

Shimmer 1200-1600 ms, ամպլիտուդը 20 տոկոսն է։

Լավատես քարտը 'մոխրագույն + տեքստ, փոխարինում ենք տվյալների գալուստին։

Սխալ 'կարճ retry-banner, idempotency-բանալիներ խոհարարների համար։

9) Արագ պատասխանելու համար ցանցային ռազմավարությունները

Քննադատական գործողությունները (տոկոսադրույքը/105)

UI-ի ապացույցը անմիջապես (լավատես), backend-idempotent;

Թայմաուտում (3-5 s) կարգավիճակի ցուցադրումը «ստացվեց, մենք վերարտադրում ենք» + ֆոնային ռետրան;

Socket/SSE-ը կարգավիճակների համար, backoff 1-2-4-8։

Pre-տվյալները ՝ warm-up-cash, հայտնի երթուղիների նախատիպը։

Edge գործառույթները 'vailidation/ագրեգացիան ավելի մոտ է օգտագործողին։

10) Արագ UI-ի կոդն է։

Ակնթարթային արձագանքը կլիկի վրա (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/viewich)

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 երկրներով/ցանցերով/սարքերով։

Տեսահոլովակի ուղին '«input chandler www.paint»։

«Կարմիր գոտիների» նշումը ՝ Long Task մարկերները, blocking-time, Slow-roporlist։

Ալերտները INP/LCP/TTFB-ի դեգրադացիայի վրա։

Բեմական թեստեր '«տեսահոլովակ» ժամանակի ստանդարտ ձայնագրությունը DFC-ի փոփոխությունն է։

12) iGaming հատկությունները

Տոկոսադրույքը/գնումը

UI 'կոճակի վիճակի ակնթարթային ամրագրումը (pressed nobuy), դուբլը' tost «Սովորական»։

Բեքենդը 'idempotent բանալին, կարգավիճակը - WindowSocket-ի միջոցով; Թայմաութը թափանցիկ «pending» է։

UI-բյուջեն ՝ FUF 35100, վերջնական թիվ 1 s (եթե ավելի երկար, ցույց ենք տալիս թայմեր/պատճառ)։

Spin/Reveal:
  • Ցրումը 200 մզ է, միատեսակ պտույտը, 300-500 մզ։ առանց անվերջ ցիկլերի։
  • Հաղթողի արգելակները 'առանց կառուցվածքի, տեքստը/գումարը (AAA)։

Live-գործակիցները

Դելտա Պաթչին մեկ անգամ 250-1000 մզ, բատչինգ;

տեսողական կոմպոզիցիա (սլաքի/գույն/նիշ) առանց layout ցատկելու;

anti drebesg տեղադրված է hover/focus-ում։

Aleksra/վարկանիշներ

Նշված հաշիվները 40-60 մզ են, պլանշետային թվերը։

sticky-գլխարկ, տողերի վիրտուալացում։

13) Anti-patterna

Ակնթարթային արձագանքի բացակայությունը կլիկի վրա (ցանցի սպասումը)։

Ծանր անիմացիաները 'www.ter/big-shadow "հարյուրավոր տարրերի վրա։

Մի հսկայական JS-բանդլ> 1-2 MB-ը կրիտիկական ճանապարհին։

«Spinner դատարկ» ավելի քան 1-2 s առանց առաջընթացի/կմախքի։

Կարդացեք/ձայնագրեք 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-chek արագության թերթիկ

Արձագանք

  • Clik/tap-ը տեսողական արձագանք է տալիս 100 մզ։ մուտքագրումը 50 մզ է։
  • Բջջային ձգձգումներ չկան։
  • INP p75-200 ms; Long Tasks-ի մասնաբաժինը 5 տոկոսն է։

Բեռնումը

  • TTFB 35200 ms; LCP ≤ 2. 5 s; CLS ≤ 0. 1.
  • Սկելետոն/առաջընթաց «կախված» սպինների փոխարեն։

Render

  • Միայն «transform/opacity» անիմացիաներում; զանգվածների վրա չկա «ծանր» ստվեր։
  • wwww.ent-visibility/վիրտուալացում երկար ցուցակների համար։

Ցանցը

  • Edge-kes, preconnect, prefetch մտադրությամբ։
  • Idempotenty և retray քննադատական գործողությունների համար։

A11y

  • [wwww.fers-reduced-motion "-ը աջակցվում է։
  • Hover բովանդակությունը հասանելի է ֆոկուսով/ստեղնաշարով։

16) Պլանավորվում է դիզայնի համակարգի համար

«Latency Budgets»: 108 շեմեր (tap, hover, modal, to.ru, ձև)։

«Instation Feedback» ՝ լավատեսական գործողությունների պաթթերներ + արձագանք։

«Difetch by Intent» ՝ www.d և կոմունիստները։

«Performance Playbook» ՝ ավելացման չեկի թերթիկներ և RUM-ալերտներ։

«Do/Don 't» -ը արագ/դանդաղ կոդերի օրինակներ է թվերով։

Live ռեզյումե

Փոխազդեցության արագությունը ակնթարթային արձագանք է + կանխատեսելի արդյունքի։ Պահեք 100 մզ որպես սուրբ բյուջե first-feedback-ի համար, օպտիմիզացրեք ցանցը (Edge/kash/prefetch), բեռնեք հիմնական հոսքը, անիմիրուզացրեք միայն էժան հատկությունները և օգտագործեք լավատեսական արտոնագրեր։ Այդ ժամանակ ինտերֆեյսը զգում է կենդանի, հասկանալի և կայուն, հատկապես iGaming-ի սցենարներում բարձր տոկոսադրույքով և իրական ժամանակով։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։