ब्राउज़र के मूल तत्त्व: नेटवर्किंग, रेंडरिंग और कैशिंग को मिथकों के बिना समझें ताकि आप AI-निर्मित फ्रंटेंड्स में सामान्य गलतियों को पहचानकर रोक सकें।

बहुत से फ्रंट-एंड बग "रहस्यमयी ब्राउज़र व्यवहार" नहीं होते। ये आधा-याद किए हुए नियमों का नतीजा हैं, जैसे “ब्राउज़र सब कुछ कैश करता है” या “React डिफ़ॉल्ट रूप से तेज़ है।” ये विचार सुनने में ठीक लगते हैं, इसलिए लोग न केवल सवाल करना बंद कर देते हैं: किससे तेज़, और किन परिस्थितियों में?\n\nवेब ट्रेड-ऑफ पर बना है। ब्राउज़र नेटवर्क विलंब, CPU, मेमोरी, मुख्य थ्रेड, GPU काम और स्टोरेज सीमा को संभालता है। अगर आपकी मानसिक मॉडल धुंधली है, तो आप ऐसा UI भेज सकते हैं जो आपके लैपटॉप पर ठीक लगे और एक मिड-रेंज फोन पर flaky Wi‑Fi पर टुकड़ा-टुकड़ा हो जाए।\n\nकुछ सामान्य मान्यताएँ जो असली बग बन जाती हैं:\n\n- “पहले लोड के बाद तेज़ होना चाहिए।” फिर आपको पता चलता है कि कुछ भी कैश नहीं हुआ क्योंकि हेडर्स गायब थे या हर बिल्ड URLs बदल देता है।\n- “ब्राउज़र सब कुछ समानांतर डाउनलोड करता है।” फिर एक बड़ा स्क्रिप्ट मुख्य थ्रेड ब्लॉक कर देता है और इनपुट जमंसा लगता है।\n- “इमेज सस्ती हैं।” फिर अनकम्प्रेस्ड हीरो इमेज रेंडरिंग देर कर देती हैं, लेआउट शिफ्ट होता है, और Core Web Vitals घटते हैं।\n- “सिर्फ मेरा कोड मायने रखता है।” तब थर्ड-पार्टी विजेट, फॉन्ट और लंबे टास्क टाइमलाइन पर हावी हो जाते हैं।\n\nAI-निर्मित फ्रंटेंड ये गलतियाँ बढ़ा सकते हैं। मॉडल एक सही दिखने वाला React पेज बना सकता है, पर उसे लेटेंसी का एहसास नहीं होता, वह बैंडविड्थ बिल नहीं देता, और वह नोटिस नहीं करता कि हर रेंडर अतिरिक्त काम ट्रिगर कर देता है। यह “शायद काम आए” कहकर बड़े डिपेंडेंसी जोड़ सकता है, HTML में विशाल JSON इनलाइन कर सकता है, या एक ही डेटा को दो बार फेच कर सकता है क्योंकि उसने दो सुस्पष्ट रूप से ठीक दिखने वाले पैटर्न जोड़ दिए।\n\nअगर आप Koder.ai जैसे vibe-coding टूल का इस्तेमाल करते हैं, तो यह और भी मायने रखता है: आप बहुत UI जल्दी जेनरेट कर सकते हैं, जो अच्छा है, पर छुपे हुए ब्राउज़र लागतें तब तक जमा हो जाती हैं जब तक कोई नोटिस नहीं करता।\n\nयह पोस्ट नेटवर्किंग, कैशिंग और रेंडरिंग पाइपलाइन जैसे रोज़मर्रा के काम में दिखने वाले मूल सिद्धांतों पर टिकती है। मकसद एक मानसिक मॉडल देना है जिससे आप अनुमान लगा सकें कि ब्राउज़र क्या करेगा और सामान्य “तेज़ होना चाहिए” के जाल से बच सकें।
ब्राउज़र को ऐसे सोचें जैसे एक फैक्टरी जो एक URL को पिक्सल में बदलती है। अगर आप लाइन के स्टेशनों को जानते हैं, तो समय कहाँ खो रहा है अनुमान लगाना आसान हो जाता है।
अधिकतर पेज इस प्रवाह का पालन करते हैं:
सर्वर HTML, API प्रतिक्रियाएँ और एसेट लौटाता है, साथ में ऐसे हेडर्स जो कैशिंग और सुरक्षा को नियंत्रित करते हैं। ब्राउज़र का काम अनुरोध से पहले (कैश लुकअप, DNS, कनेक्शन सेटअप) शुरू होता है और प्रतिक्रिया के बाद भी जारी रहता है (पार्सिंग, रेंडरिंग, स्क्रिप्ट एक्जीक्यूशन, और अगली बार के लिए स्टोरेज)।
बहुत सी भ्रम इस बात से आती है कि ब्राउज़र एक समय में एक ही काम करता है। ऐसा नहीं है। कुछ काम मुख्य थ्रेड के बाहर होता है (नेटवर्क फ़ेचिंग, इमेज डिकोडिंग, कुछ कंपोज़िटिंग), जबकि मुख्य थ्रेड "यहीं ब्लॉक न करें" लेन है। यह उपयोगकर्ता इनपुट को संभालता है, ज़्यादातर JavaScript चलाता है, और लेआउट व पेंट को समन्वयित करता है। जब यह व्यस्त होता है, तो क्लिक अनदेखा लगे और स्क्रॉलिंग चिपचिपी हो जाए।
अधिकतर देरी कुछ ही जगहों पर छुपी रहती हैं: नेटवर्क वेट्स, कैश मिस, CPU-भारी काम (JavaScript, लेआउट, बहुत बड़ा DOM), या GPU-भारी काम (बहुत सारी बड़ी लेयर्स और इफेक्ट)। यह मानसिक मॉडल तब भी मदद करता है जब कोई AI टूल कुछ ऐसा जेनरेट करे जो "ठीक दिखता" है पर धीमा महसूस होता है: आमतौर पर उसने उन स्टेशनों में से किसी एक पर अतिरिक्त काम बना दिया होता है।
कोई पेज असली सामग्री के डाउनलोड होने से पहले भी धीमा महसूस कर सकता है, क्योंकि ब्राउज़र को सबसे पहले सर्वर तक पहुंचना पड़ता है।
जब आप URL टाइप करते हैं, ब्राउज़र आम तौर पर DNS करता है (सर्वर ढूँढना), TCP कनेक्शन खोलता है, फिर TLS नेगोशिएट करता है (एन्क्रिप्ट व वेरिफाई)। हर स्टेप इंतज़ार जोड़ता है, खासकर मोबाइल नेटवर्क पर। इसलिए "बंडल सिर्फ 200 KB है" होते हुए भी चीज़ सुस्त लग सकती है।
उसके बाद ब्राउज़र HTTP अनुरोध भेजता है और प्रतिक्रिया प्राप्त करता है: स्टेटस कोड, हेडर्स, और बॉडी। हेडर्स UI के लिए मायने रखते हैं क्योंकि वे कैशिंग, कम्प्रेशन और कंटेंट टाइप नियंत्रित करते हैं। अगर कंटेंट टाइप गलत है, तो ब्राउज़र फाइल को सही तरह से पार्स नहीं कर पाएगा। अगर कम्प्रेशन सक्षम नहीं है, तो "टेक्स्ट" एसेट बहुत बड़े डाउनलोड बन जाते हैं।
रिडायरेक्ट्स भी समय बरबाद करने का आसान तरीका हैं। एक अतिरिक्त हॉप का मतलब एक और अनुरोध और प्रतिक्रिया, और कभी-कभी एक और कनेक्शन सेटअप होता है। अगर आपका होमपेज एक URL पर redirect करता है, जो फिर दूसरी जगह redirect करता है (http से https, फिर www पर, फिर किसी लोकलाइज्ड पाथ पर), तो आपने क्रिटिकल CSS और JS फेच करने से पहले कई इंतज़ार जोड़ दिए हैं।
साइज़ सिर्फ इमेज नहीं है। HTML, CSS, JS, JSON और SVG को आम तौर पर कम्प्रेस किया जाना चाहिए। साथ ही देखें कि आपका JavaScript क्या खींचता है। एक "छोटी" JS फ़ाइल तत्काल कई अन्य अनुरोध (chunks, फॉन्ट, थर्ड-पार्टी स्क्रिप्ट) ट्रिगर कर सकती है।
तेज़ जांचें जो ज्यादातर UI-संबंधित मुद्दों को पकड़ लेती हैं:
AI-जनरेटेड कोड इसे और खराब कर सकता है, कई चंक्स में आउटपुट बांटकर और अतिरिक्त लाइब्रेरी डिफ़ॉल्ट में खींचकर। नेटवर्क "बिज़ी" दिखता है भले ही हर फाइल छोटी हो, और स्टार्ट-अप टाइम प्रभावित होता है।
"कैश" कोई जादुई बॉक्स नहीं है। ब्राउज़र कई जगहों से डेटा reuse करते हैं, और हर एक के अपने नियम होते हैं। कुछ रेसोर्सेज़ थोड़े समय के लिए मेमोरी में रहते हैं (तेज़, पर रिफ्रेश पर चले जाते हैं)। दूसरे डिस्क पर स्टोर होते हैं (रीस्टार्ट के बाद भी बने रहते हैं)। HTTP कैश तय करता है कि कोई रिस्पांस पूरी तरह reuse हो सकता है या नहीं।
अधिकांश कैश व्यवहार प्रतिक्रिया हेडर्स से नियंत्रित होता है:
max-age=...: बिना सर्वर से संपर्क किए समय समाप्त होने तक रिस्पॉन्स को reuse करें।no-store: न तो मेमोरी में रखें और न ही डिस्क पर (सेंसिटिव डेटा के लिए अच्छा)।public: साझा कैशेज़ द्वारा भी कैश किया जा सकता है, सिर्फ यूज़र ब्राउज़र तक सीमित नहीं।private: सिर्फ यूज़र के ब्राउज़र में कैश करें।no-cache: भ्रमित करने वाला नाम। अक्सर मतलब होता है “स्टोर करें, पर reuse से पहले revalidate करें।”जब ब्राउज़र revalidate करता है, तो वह पूरा फाइल डाउनलोड करने से बचने की कोशिश करता है। अगर सर्वर ने ETag या Last-Modified दिया है, तो ब्राउज़र पूछ सकता है “क्या यह बदला है?” और सर्वर जवाब दे सकता है “not modified।” वह राउंड ट्रिप समय लेता है, पर यह आमतौर पर पूर्ण डाउनलोड से सस्ता होता है।
एक आम गलती (खासकर AI-जनरेटेड सेटअप में) यह है कि हर बिल्ड पर या उससे भी बुरी बात, हर पेज लोड पर app.js?cacheBust=1736 जैसे रैंडम क्वेरी स्ट्रिंग जोड़ दिए जाते हैं। यह सुरक्षित लग सकता है, पर यह कैशिंग को बेकार कर देता है। एक बेहतर पैटर्न है स्थिर URLs स्थिर कंटेंट के लिए, और फ़ाइलनामों में कंटेंट हैश का उपयोग वर्ज़निंग के लिए।
वो कैश-बस्टर्स जो बैकफायर करते हैं कुछ पैटर्न में आते हैं: रैंडम क्वेरी पैरामीटर, बदलते JS/CSS के लिए एक ही फ़ाइलनाम का दोबारा इस्तेमाल, हर डिप्लॉय पर URLs बदलना भले ही कंटेंट न बदला हो, या डेवलपमेंट के दौरान कैशिंग बंद कर देना और भूल जाना कि इसे वापस चालू करना चाहिए।
सर्विस वर्कर्स तब मदद कर सकते हैं जब आपको ऑफलाइन सपोर्ट चाहिए या तुरंत रैलीड्स चाहिए, पर वे एक और कैश लेयर जोड़ते हैं जिसे आपको मैनेज करना होगा। अगर आपका ऐप "अपडेट नहीं होता", तो अक्सर वजह स्टेल सर्विस वर्कर होती है। उन्हें तभी इस्तेमाल करें जब आप स्पष्ट रूप से बता सकें कि क्या कैश होगा और अपडेट कैसे रोल आउट होंगे।
"रहस्यमय" UI बग कम करने के लिए जानें कि ब्राउज़र बाइट्स को पिक्सल में कैसे बदलता है।
जब HTML आता है, ब्राउज़र उसे ऊपर से नीचे पार्स करता है और DOM बनाता है (तत्त्वों का एक पेड़)। पार्स करते समय यह CSS, स्क्रिप्ट, इमेज और फॉन्ट खोज सकता है जो क्या दिखेगा उसे बदलते हैं।
CSS खास है क्योंकि ब्राउज़र तब तक सुरक्षित रूप से सामग्री नहीं ड्रॉ कर सकता जब तक उसे अंतिम स्टाइल्स नहीं पता होते। इसलिए CSS रेंडरिंग को ब्लॉक कर सकता है: ब्राउज़र CSSOM (style rules) बनाता है, फिर DOM + CSSOM को एक रेंडर ट्री में मिलाता है। अगर क्रिटिकल CSS लेट होता है, तो पहली पेंट देर हो जाती है।
स्टाइल्स ज्ञात होने के बाद मुख्य कदम हैं:
इमेज और फॉन्ट अक्सर तय करते हैं कि उपयोगकर्ता इसे "लोडेड" कैसे महसूस करता है। देरी वाला हीरो इमेज Largest Contentful Paint को आगे धकेल देता है। वेब फॉन्ट्स invisible text या style swap का कारण बन सकते हैं जो फ्लिकर जैसा दिखता है। स्क्रिप्ट्स parsing ब्लॉक कर सकती हैं या अतिरिक्त स्टाइल री-कैल्कुलेशन ट्रिगर कर सकती हैं और पहली पेंट को रोक सकती हैं।
एक लगातार मिथक है “एनीमेशन मुफ्त है।” यह इस बात पर निर्भर करता है कि आप क्या एनीमेट कर रहे हैं। width, height, top, या left बदलने से अक्सर लेआउट, फिर पेंट, फिर कंपोज़िट होता है। transform या opacity एनीमेशन अक्सर कंपोज़िटिंग में ही रहते हैं, जो बहुत सस्ता है।
एक वास्तववादी AI-जनरेटेड गलती हो सकती है लोडिंग शिमर जो कई कार्ड्स पर background-position एनीमेट करता है, साथ ही टाइमर से बार-बार DOM अपडेट्स। परिणाम लगातार repainting होता है। आमतौर पर फिक्स सरल होता है: कम एलिमेंट्स एनीमेट करें, मोशन के लिए transform/opacity चुनें, और लेआउट स्थिर रखें।
तेज़ नेटवर्क पर भी एक पेज धीमा महसूस कर सकता है क्योंकि ब्राउज़र पेंट करने और प्रतिक्रिया देने में असमर्थ है जबकि वह JavaScript चला रहा है। बंडल डाउनलोड होना केवल पहला कदम है। बड़ी देरी अक्सर पार्स और कॉम्पाइल टाइम और मुख्य थ्रेड पर चलने वाले काम से होती है।
फ्रेमवर्क अपने खर्च जोड़ते हैं। React में, "रेंडर" यह गणना है कि UI कैसा दिखना चाहिए। पहले लोड पर, क्लाइंट-साइड ऐप अक्सर hydration करते हैं: इवेंट हैंडलर अटैच करना और जो पहले से पेज पर है उससे reconcile करना। अगर hydration भारी है, तो आपको ऐसा पेज मिल सकता है जो दिखता तो तैयार है पर टैप को कुछ देर नजरअंदाज कर देता है।
दर्द आमतौर पर लंबे टास्क्स के रूप में दिखता है: JavaScript इतना लंबे समय तक चलता है (अक्सर 50ms या उससे अधिक) कि ब्राउज़र बीच में स्क्रीन अपडेट नहीं कर पाता। आप इसे विलंबित इनपुट, ड्रॉप हुए फ्रेम्स और हिचकीदार एनीमेशन के रूप में महसूस करते हैं।
आम अपराधी साधारण हैं:
फिक्स मुख्य-थ्रेड काम पर ध्यान देने से स्पष्ट होते हैं, सिर्फ बाइट्स पर नहीं:
अगर आप Koder.ai जैसे चैट-ड्रिवन टूल से बनाते हैं, तो इन प्रतिबंधों को सीधे पूछना मदद करता है: प्रारंभिक JS छोटा रखें, माउंट-टाइम effects से बचें, और पहली स्क्रीन सरल रखें।
लक्षण को सादे शब्दों में नाम देकर शुरू करें: “पहला लोड 8 सेकंड लेता है,” “स्क्रॉल चिपचिपा लगता है,” या “रिफ्रेश के बाद डेटा पुराना दिखता है।” अलग-अलग लक्षण अलग कारणों की ओर इशारा करते हैं।
सबसे पहले तय करें कि आप नेटवर्क पर इंतजार कर रहे हैं या CPU जला रहे हैं। एक सरल जांच: रीलोड करें और देखें कि लोड होते समय आप क्या कर सकते हैं। अगर पेज खाली है और कुछ भी प्रतिक्रिया नहीं देता, तो अक्सर आप नेटवर्क-बाउंड हैं। अगर पेज दिखाई देता है पर क्लिक लेग करते हैं या स्क्रॉल स्टटर करता है, तो अक्सर आप CPU-बाउंड हैं।
एक वर्कफ़्लो जो आपको सब कुछ एक साथ ठीक करने से रोकता है:
एक ठोस उदाहरण: एक AI-निर्मित React पेज एकल 2 MB JavaScript फ़ाइल और एक बड़ा हीरो इमेज भेजता है। आपकी मशीन पर यह ठीक लगता है। फोन पर यह JS पार्स करने में सेकंड लगा देता है इससे पहले कि यह प्रतिक्रिया दे सके। पहले व्यू JS काटें और हीरो इमेज को रिसाइज़ करें और आप आमतौर पर पहली इंटरैक्शन का समय स्पष्ट रूप से घटते देखेंगे।
एक बार जब आपको मापनीय सुधार मिल जाए, तो उसे regress होने से मुश्किल बनाएं।
बजट सेट करें (max bundle size, max image size) और जब आप इन्हें पार करें तो बिल्ड फेल कर दें। रिपो में एक छोटा प्रदर्शन नोट रखें: क्या धीमा था, क्या फिक्स किया, क्या देखने के लिए है। बड़े UI बदलाव या नए dependencies के बाद फिर से जांचें, खासकर जब AI तेजी से कंपोनेंट जेनरेट कर रहा हो।
AI तेज़ी से कार्यशील UI लिख सकता है, पर अक्सर वे उबाऊ हिस्सों को मिस कर देता है जो पेज को तेज़ और भरोसेमंद बनाते हैं। ब्राउज़र की बुनियादी बातें जानने से आप जल्दी ही समस्याएँ पकड़ सकते हैं, इससे पहले कि वे धीमे लोड, झटकेदार स्क्रोलिंग, या आश्चर्यजनक API बिल के रूप में दिखें।
ओवरफेचिंग आम बात है। AI-जनरेटेड पेज एक ही स्क्रीन के लिए कई एंडपॉइंट कॉल कर सकता है, छोटे state बदलावों पर रीफेच कर सकता है, या पूरा डेटा खींच सकता है जब आपको सिर्फ पहले 20 आइटम चाहिए। प्रॉम्प्ट्स अक्सर UI का वर्णन करते हैं न कि डेटा की संरचना, इसलिए मॉडल अंतर को भरने के लिए अतिरिक्त कॉल और कोई पेजिनेशन या बैचिंग नहीं जोड़ देता।
रेंडर ब्लॉकिंग फिर एक और बार दोषी बनता है। फॉन्ट्स, बड़े CSS फाइल्स, और थर्ड-पार्टी स्क्रिप्ट हेड में डाल दिए जाते हैं क्योंकि यह "सही" लगता है, पर वे पहली पेंट को देरी कर सकते हैं। आप संसाधनों का इंतज़ार करते हुए खाली पेज देख सकते हैं जबकि ब्राउज़र उन चीज़ों का इंतजार कर रहा है जो पहले व्यू के लिए जरूरी नहीं हैं।
कैशिंग की गलतियाँ अक्सर नेक इरादों पर आधारित होती हैं। AI कभी-कभी हेडर्स या फेच ऑप्शन्स जोड़ देता है जिसका मतलब होता है “कहीं भी कुछ भी कभी reuse न हो,” क्योंकि यह सुरक्षित लगता है। नतीजा अनावश्यक डाउनलोड, धीमी रिपीट विज़िट्स और आपके बैकएंड पर अतिरिक्त लोड होता है।
Hydration mismatches अक्सर जल्दी किए गए React आउटपुट में दिखते हैं। सर्वर-रेंडर किए गए मार्कअप और क्लाइंट पर रेंडर किए गए मार्कअप मेल नहीं खाते, इसलिए React वॉर्निंग देता है, दोबारा रेंडर करता है, या इवेंट्स अजीब तरीके से अटैच होते हैं। अक्सर कारण होता है शुरुआती रेंडर में रैंडम वैल्यूज़ (डेट्स, IDs) का मिश्रण या क्लाइंट-ओनली state पर निर्भर कंडीशनल्स।
अगर आप इन संकेतों को देखते हैं, तो मान लीजिए पेज प्रदर्शन गार्डरेल्स के बिना असेंबल किया गया था: एक स्क्रीन के लिए डुप्लिकेट रिक्वेस्ट्स, एक अनयूज़्ड UI लाइब्रेरी से खींचा गया विशाल JS बंडल, ऐसे effects जो अस्थिर वैल्यूज़ की वजह से रीफेच करते हैं, फॉन्ट्स या थर्ड-पार्टी स्क्रिप्ट जो क्रिटिकल CSS से पहले लोड होते हैं, या डेवलपमेंट के दौरान ग्लोबली कैशिंग डिसेबल करना।
जब आप Koder.ai जैसी vibe-coding टूल का उपयोग कर रहे हों, तो जनरेट किए गए आउटपुट को पहले ड्राफ्ट मानें। पेजिनेशन, स्पष्ट कैशिंग नियम और यह कि पहली पेंट से पहले क्या लोड होना चाहिए—इनके लिए कहें।
एक AI-निर्मित React मार्केटिंग पेज स्क्रीनशॉट में परफेक्ट लग सकता है और फिर भी आपके हाथों में धीमा महसूस कर सकता है। एक सामान्य सेटअप: हीरो सेक्शन, टेस्टिमोनियल्स, प्राइसिंग टेबल, और एक "नवीनतम अपडेट्स" विजेट जो एक API हिट करता है।
लक्षण परिचित हैं: टेक्स्ट देर से दिखता है, फॉन्ट लोड होने पर लेआउट कूदता है, प्राइसिंग कार्ड इमेज के आने पर शफल होते हैं, API कॉल कई बार फायर होते हैं, और कुछ एसेट्स डिप्लॉय के बाद पुरानी हालत में बने रहते हैं। ये में से कोई भी रहस्यमय नहीं है। यह बुनियादी ब्राउज़र व्यवहार है जो UI में दिख रहा है।
दो दृश्य से शुरू करें।
पहला, DevTools खोलें और नेटवर्क वॉटरफॉल देखें। एक बड़ा JS बंडल जो सब कुछ ब्लॉक कर रहा है, देर से लोड होने वाले फॉन्ट, बिना साइज के इमेज और एक ही एंडपॉइंट के बार-बार कॉल (अक्सर हल्के-फुल्के अलग क्वेरी स्ट्रिंग्स के साथ) देखें।
दूसरा, रीलोड करते समय एक परफ़ॉर्मेंस ट्रेस रिकॉर्ड करें। लंबे टास्क (मुख्य थ्रेड ब्लॉक कर रहे JavaScript) और लेआउट शिफ्ट इवेंट्स (सामग्री आने के बाद पेज का फिर से व्यवस्थित होना) पर ध्यान दें।
इस परिदृश्य में एक छोटी सी फिक्सेस सेट अक्सर अधिकांश लाभ दे देती है:
aspect-ratio) ताकि ब्राउज़र स्पेस रिज़र्व कर सके और लेआउट जंप से बचा जा सके।उन्नति की पुष्टि शानदार टूल्स के बिना करें। कैश डिसेबल करके तीन रीलोड, फिर कैश सक्षम करके तीन बार रीलोड करें और वॉटरफॉल की तुलना करें। टेक्स्ट पहले दिखाई देना चाहिए, API कॉल एक पर उतरना चाहिए, और लेआउट स्थिर रहना चाहिए। अंत में, डिप्लॉय के बाद हार्ड रिफ्रेश करें। अगर आप अभी भी पुरानी CSS या JS देखते हैं, तो कैशिंग नियम आपके बिल्ड-शिपिंग तरीके के साथ मेल नहीं खा रहे।
अगर आपने पेज Koder.ai जैसे vibe-coding टूल से बनाया है, तो वही लूप रखें: एक वॉटरफॉल निरीक्षण करें, एक चीज बदलें, फिर फिर से सत्यापित करें। छोटे इटरेशंस AI-निर्मित फ्रंटेंड्स को "AI-निर्मित सरप्राइज़ेस" में बदलने से रोकते हैं।
जब पेज धीमा या glitches भरा लगे, आपको लोककथाओं की ज़रूरत नहीं है। कुछ चेक अधिकांश वास्तविक दुनिया की समस्याओं को समझा देंगे, जिनमें AI-जनरेटेड UIs से आने वाली समस्याएँ भी शामिल हैं।
यहाँ से शुरू करें:
अगर पेज जैंकी है न कि सिर्फ़ धीमा, तो मूवमेंट और मुख्य-थ्रेड काम पर ध्यान दें। लेआउट शिफ्ट आमतौर पर बिना डायमेंशन वाली इमेज, देर से लोड होने वाले फॉन्ट, या डेटा आने के बाद साइज बदलने वाले कंपोनेंट्स से आते हैं। लंबे टास्क आमतौर पर एक साथ बहुत ज्यादा JavaScript से आते हैं (भारी hydration, भारी लाइब्रेरीज़, या बहुत सारे नोड्स रेंडर करना)।
AI को निर्देश देते समय ब्राउज़र शब्दों का प्रयोग करें जो वास्तविक सीमाओं की ओर इशारा करते हैं:
अगर आप Koder.ai पर बना रहे हैं, तो Planning Mode उन सीमाओं को पहले लिखने के लिए अच्छा स्थान है। फिर छोटे बदलावों में इटररेट करें और टेस्टिंग के लिए स्नैपशॉट व रॉलबैक का इस्तेमाल करें।