GH GambleHub

अंतःक्रिया दर और विलंबता UI

1) इंटरफ़ेस गति क्या है

गति केवल पृष्ठ लोडिंग नहीं है। यह चार देरी का योग है:

1. इनपुट विलंबता - इशारे से इवेंट हैंडलर तक।

2. नेटवर्क विलंबता - बैकेंड/कैश अनुक्रिया से पहले।

3. मुख्य धारा (जेएस/सीएसएस/लेआउट/पेंट) पर रेंडर लेटेंसी - प्रोसेसिंग।

4. एनीमेशन विलंबता - फ्रेम की चिकनाई और स्थिरता।

उद्देश्य: उपयोगकर्ता तुरंत देखता है कि कार्रवाई शुरू हो गई है और प्रक्रिया कहां चल रही है; वास्तविक परिणाम अनुमानित रूप से आता है।

2) मानव धारणा के थ्रेसहोल्ड

≤ 50 ms - "बिजली तेज़" (प्रिंट गूंज, कुंजी प्रेस)।

100 ms - "तुरंत" (दृश्य प्रतिक्रिया पर क्लिक करें)।

≤ 200 एमएस - अधिकांश यूआई प्रतिक्रियाओं के लिए स्वीकार्य।

≤ 1000 ms - स्पष्ट प्रगति/कंकाल के साथ सहनीय।

💡 10 s - उपयोगकर्ता संदर्भ खो देता है, वृद्धि की आवश्यकता होती है (बचत, स्थगित, अधिसूचना)।

3) रेल मॉडल और लक्ष्य बजट

आर (प्रतिक्रिया): इनपुट प्रतिक्रिया

→ दृश्य अनुक्रिया ≤ 100 ms पर क्लिक/टैप करें।

फोकस/होवर → ≤ 80-120 एमएस।

ए (एनीमेशन): चिकनाई

60 एफपीएस ⇒ फ्रेम 16। 7 एमएस; फ्रेम से बाहर निकालने के लिए भारी ऑपरेशन।

हम सिर्फ 'रूपांतरण '/' अपारदर्शिता' को चेतन करते हैं।

I (Idle): पृष्ठभूमि कार्य

स्लॉट ≤ 50 ms में विभाजित करें, निष्क्रिय विंडो का उपयोग करें।

L (लोड): लोड हो रहा है

TTFB ≤ 200ms, LCP ≤ 2। 5s, INP ≤ 200ms, CLS ≤ 0। 1.

4) केपीआई और स्पीड अलर्ट

INP (नेक्स्ट पेंट के लिए बातचीत): p75 <200 ms (अच्छा), 200-500 (बेहतर होने के लिए)।

लंबे कार्य (> 50 ms): एलटी <5% के साथ फ्रेम का अनुपात।

TTFB p75 <200 ms (कैश/एज), LCP p75 <2। 5 पी।

पहला उपयोगकर्ता प्रतिक्रिया (FUF): कार्रवाई ≤ 100 ms की पहली दृश्य पुष्टि तक समय।

पहला क्षेत्र दर्ज होने से पहले forms 1 s के लिए समय-से-प्रयोज्य।

5) UX त्वरित प्रतिक्रिया पैटर्न

1. आशावादी अपडेट: यूआई को तुरंत बदलें (बैलेंस/शर्त/जैसे), त्रुटि पर वापस रोल करें।

2. यदि संरचना ज्ञात हो तो स्पिनर के बजाय कंकाल।

3. प्रगति/चरण: यदि प्रक्रिया की लंबाई ज्ञात है तो नियतात्मक प

4. स्थानीय सुझाव: तत्काल टोस्ट/राज्य "भेजें"... ≤ 100 एमएस।

5. इरादा प्रीलोड: होवर/दृश्यता → 'प्रीफेच '/' प्रीलोड'।

6) विलंब शमन तकनीक

6. 1 इनपुट → रेंडर

मोबाइल पर 300 एमएस की देरी शूट करें: '<मेटा नाम = "व्यूपोर्ट" सामग्री = "चौड़ाई = डिवाइस-चौड़ाई, प्रारंभिक-स्केल = 1 ">'।

स्क्रॉलिंग/टैच के लिए श्रोता निष्क्रिय: 'AddeventListener (' टचस्टार्ट ', हैंडलर, {passive: true})'।

प्रोसेसिंग क्लिक करें - एक माइक्रो कार्य में या 'एनिमेशनफ्रेम' में जल्दी से पुष्टि आरेखित करने के लिए।

लेआउट-थ्रैश से बचें: लेआउट पढ़ें/लिखें - बुच।

6. 2 जेएस और मुख्य स्ट्रीम

अलग बंडल (कोड-विभाजन), मार्गों के साथ लोड करें।

भारी कंप्यूटिंग - वेब कार्यकर्ता।

'scheduler का उपयोग करें। पृष्ठभूमि कार्यों के लिए पोस्टटास्क '/' IdleCallback '।

क्रिटिकल सीएसएस - इनलाइन; JS с 'स्थगित करें '/' async'।

वर्चुअलाइजेशन की सूची, 'सामग्री-दृश्यता: स्वतः', 'समाहित करें: सामग्री'.

6. 3 रेंडरिंग और एनिमेशन

एनिमेट 'रूपांतरण/अपारदर्शिता'; सैकड़ों तत्वों पर 'ऊंचाई/बाएं/बॉक्स-छाया' को एनिमेट न करें।

एनीमेशन से पहले अस्थायी रूप से 'will-change' put; के बाद साफ करें।

विशाल पीएनजी के बजाय स्प्राइट्स/वेक्टर; भारी धब्बा से बचें।

6. 4 नेटवर्क और कैश

Edge- кеш (CDN), 'कैश-कंट्रोल', 'बासी-जबकि-पुनर्नवीनीकरण'।

महत्वपूर्ण डोमेन के लिए प्रीकनेक्ट क प्रारंभिक संकेत (103), HTTP/2/3।

इरादे से प्रीफेच (होवर/व्यूपोर्ट)।

स्ट्रीमिंग/एसएसआर + प्रगतिशील जलयोजन/द्वीप।

7) डेब्यू/थ्रॉटलिंग और कतारें

बहस - इनपुट (150-300 एमएस) के दौरान खोज के लिए।

थ्रॉटलिंग - स्क्रॉल/आकार (100-200 एमएस) के लिए।

लगातार घटनाओं (लाइव डेटा) के लिए कतारें/कसाई UI अपडेट।

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) लोडिंग और फीडबैक पैटर्न

कंकाल → सामग्री (कोई मोड़ नहीं, निश्चित ऊंचाई)।

शिमर 1200-1600 एमएस, आयाम ≤ 20%।

आशावादी कार्ड: ग्रे पूर्वावलोकन + पाठ - हम डेटा आने पर इसे बदल देते हैं।

त्रुटि: संक्षिप्त पुनरावृत्ति बैनर, पुनरावृत्ति के लिए पहचान कुंजी।

9) तेजी से प्रतिक्रिया के लिए नेटवर्क रणनीति

महत्वपूर्ण कार्रवाई (दर/भुगतान):
  • यूआई की तुरंत पुष्टि (आशावादी), बैकेंड - पहचान;
  • जब टाइमआउट (3-5 एस), "प्राप्त, संसाधित" + पृष्ठभूमि रीट्रे स्थिति प्रदर्शित करना;
  • स्टेटस के लिए वेबसॉकेट/एसएसई, बैकऑफ 1-2-4-8 एस।

प्री-डेटा: एक शेड्यूल पर वार्म-अप कैश, लोकप्रिय मार्गों का प्रीफेच।

एज फ़ंक्शन: उपयोगकर्ता के करीब सत्यापन/एकत्रीकरण।

10) फास्ट यूआई स्निपेट कोड

क्लिक करने के लिए तत्काल अनुक्रिया (नेटवर्क अनुक्रिया से पहले फीडबैक):
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');
}
});
});
इरादा उपसर्ग (होवर/व्यूपोर्ट):
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
.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 देश/नेटवर्क/उपकरण द्वारा।

ट्रेस 'इनपुट → हैंडलर → नेटवर्क → पेंट' पर क्लिक करें।

रेड ज़ोन मार्कअप: लॉन्ग टास्क मार्कर, ब्लॉकिंग-टाइम, स्लो-रूट सूची।

INP/LCP/TTFB गिरावट अलर्ट।

परिदृश्य परीक्षण: संदर्भ समय का रिकॉर्ड "क्लिक करें → DOM बदलें।"

12) iGaming की बारीकियाँ

बोली/खरीदें:
  • UI: बटन स्थिति का त्वरित निर्धारण (दबाया → व्यस्त), डबल - टोस्ट "स्वीकृत"।
  • बैकेंड: दर से पहचान कुंजी; स्थिति - वेबसॉकेट के माध्यम से; टाइमआउट → पारदर्शी "लंबित"।
  • UI बजट: FUF ≤ 100 ms, अंतिम पुष्टि ≤ 1 s (यदि लंबे समय तक, हम टाइमर/कारण दिखाते हैं)।
स्पिन/खुलासा:
  • त्वरण ≤ 200 एमएस, समान रोटेशन, क्षीणन 300-500 एमएस; अनंत चक्र के बिना।
  • जीत स्टब्स - कोई स्ट्रोब, पाठ/राशि पढ़ ने योग्य (एएए)।
लाइव गुणांक:
  • डेल्टा प्रत्येक 250-1000 ms में एक बार पैच करता है, कसाई;
  • लेआउट कूद के बिना दृश्य डिफ़ (तीर/रंग/मोटाई);
  • होवर/फोकस पर एंटी-बाउंस अपडेट।
टूर्नामेंट/रैंकिंग:
  • 40-60 एमएस, टेबल अंकों द्वारा खाता वृद्धि;
  • चिपचिपा हेडर, स्ट्रिंग वर्चुअलाइजेशन।

13) एंटी-पैटर्न

क्लिक करने के लिए कोई तत्काल प्रतिक्रिया नहीं (नेटवर्क

सैकड़ों तत्वों पर भारी 'फ़िल्टर/बॉक्स-छाया' एनिमेशन।

एक विशाल जेएस बंडल> 1-2 एमबी प्रति महत्वपूर्ण पथ।

शून्य में स्पिनर 1-2 से अधिक है जिसमें कोई प्रगति/कंकाल नहीं है।

एक टिक में लेआउट पढ़ ना/लिखना (लेआउट थ्रैशिंग)।

मोबाइल पर केवल हॉवर फीचर्स।

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) क्यूए चेकलिस्ट ऑफ स्पीड

प्रतिक्रिया

  • क्लिक करें/टैप करें → दृश्य प्रतिक्रिया ≤ 100 ms; → इको इनपुट ≤ 50 ms।
  • मोबाइल पर कोई 300 एमएस देरी नहीं।
  • INP p75 ≤ 200 ms; लॉन्ग टास्क शेयर ≤ 5%।

लोड हो रहा है

  • TTFB ≤ 200ms; LCP ≤ 2। 5 एस; सीएलएस ≤ 0। 1.
  • कंकाल/प्रगति "हैंगिंग" स्पिनरों के बजाय।

रेंडर

  • एनिमेशन में केवल 'रूपांतरण/अपारदर्शिता'; सरणियों पर कोई "भारी" छाया नहीं है।
  • लंबी सूचियों के लिए सामग्री-दृश्यता/वर्चुअलाइजेशन।

नेटवर्क

  • एज कैश, प्रीकनेक्ट, इरादा उपसर्ग।
  • महत्वपूर्ण कार्यों के लिए पहचान और पीछे हटता है।

A11y

  • 'पसंद-कम-गति' समर्थित।
  • होवर सामग्री फोकस/कीबोर्ड द्वारा उपलब्ध है।

16) डिजाइन प्रणाली प्रलेखन

"लेटेंसी बजट": थ्रेसहोल्ड की तालिका (टैप, होवर, मोडल, टोस्ट, फॉर्म)।

"इंस्टेंट फीडबैक": आशावादी एक्शन पैटर्न + पुलबैक।

"प्रीफेच बाय इंटेंट": गाइड और यूटिलिटीज।

"प्रदर्शन प्लेबुक": प्रोफाइलिंग चेकलिस्ट और आरयूएम अलर्ट।

"डू/डोंट": संख्याओं के साथ तेज/धीमी स्क्रिप्ट के उदाहरण।

संक्षिप्त सारांश

बातचीत की गति परिणाम की त्वरित प्रतिक्रिया + पूर्वानुमानित वितरण है। प्रथम-प्रतिक्रिया के लिए एक पवित्र बजट के रूप में 100 एमएस रखें, नेटवर्क (एज/कैश/उपसर्ग) का अनुकूलन करें, मुख्य धारा को बंद करें, केवल सस्ते गुणों को चेतन करें और आशावादी पैटर्न लागू करें। फिर इंटरफ़ेस जीवंत, समझने योग्य और लचीला लगता है - विशेष रूप से उच्च-दांव, वास्तविक समय के iGaming परिदृश्यों में।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।