क्यूट Chrome एक्सटेंशन जो आपके ब्राउज़र को धीमा नहीं करते
सजावटी ब्राउज़र एक्सटेंशन की एक छवि है, और वह ज़्यादातर जायज़ है: भारी, बातूनी, और ऐसी परमिशन लिस्ट के साथ इंस्टॉल किए गए जिसे किसी ने नहीं पढ़ा। यह अफ़सोस की बात है, क्योंकि यह कैटेगरी सच में मज़ेदार है और हर समस्या से बचा जा सकता है।
जाँचने लायक तीन बातें
- परमिशन लिस्ट। Chrome इंस्टॉल करने से पहले यह दिखा देता है। Storage एक प्रेफ़रेंस फ़ाइल है। Tabs, cookies, history और webRequest वे हैं जो किसी एक्सटेंशन को यह देखने देते हैं कि आप क्या ब्राउज़ कर रहे हैं।
- क्या यह आपके पेज के लेआउट को छूता है। ऐसा एक्सटेंशन जो डॉक्यूमेंट फ़्लो में एलिमेंट डालता है, या हर स्क्रॉल इवेंट पर एलिमेंट की पोज़िशन नापता है, वह एक स्मूद पेज को अटका सकता है, चाहे वह कितना भी कम ड्रॉ करे।
- यह रिक्वेस्ट कहाँ भेजता है। एक सजावट जिसका नेटवर्क टैब व्यस्त हो, वह एक दूसरा काम कर रही है जिसके बारे में आपको नहीं बताया गया।
लेआउट ही क्यों काटता है
लेआउट प्रॉपर्टी पढ़ना — किसी एलिमेंट की ऊँचाई, स्क्रीन पर उसकी पोज़िशन — ब्राउज़र को जवाब देने से पहले किसी भी बाकी लेआउट काम को पूरा करने पर मजबूर करता है। यह किसी स्क्रॉल हैंडलर के अंदर करिए, और आपने ब्राउज़र से कहा है कि वह हर सेकंड साठ बार रुककर नापे, उस पेज पर जिसे वह अभी बीच में ही ड्रॉ कर रहा था।
यही तंत्र है ज़्यादातर “यह एक्सटेंशन स्क्रॉलिंग को लैगी बना देता है” वाली शिकायतों के पीछे, और यह तब तक अदृश्य रहता है जब तक कोई इसे प्रोफ़ाइल नहीं करता। इसका इलाज साधारण है: स्क्रॉल के दौरान कभी लेआउट मत पढ़ो, सिर्फ़ ट्रांसफ़ॉर्म लिखो, और हिलाने का काम कंपोज़िटर पर छोड़ दो।
यहाँ यह कैसा दिखता है
scrolldog एक छोटा पिक्सेल पालतू जानवर है जो हर पेज के किनारे पर आपकी स्क्रॉल स्पीड पर दौड़ता है। यह ऊपर बताई गई जाँचों का एक व्यावहारिक उदाहरण भी है, क्योंकि इसके साथ रहना बर्दाश्त करने लायक बनने के लिए इसे इन जाँचों से गुज़रना पड़ा:
- सिर्फ़ दो परमिशन: storage और unlimitedStorage। कोई tabs नहीं, कोई cookies नहीं, कोई history नहीं, कोई webRequest नहीं।
- एक होस्ट परमिशन — api.scroll.dog — लाइसेंस जाँचने के लिए, आप जिस पेज पर हैं उसे छूने के लिए कभी नहीं।
- पालतू जानवर एक फ़िक्स्ड, ज़ीरो-साइज़ ट्रैक में रहता है और हमेशा सिर्फ़ एक CSS transform लिखता है, तो आपके पेज का अपना लेआउट कभी नहीं बदलता।
- स्क्रॉल को पैसिवली सुना जाता है और हर एनिमेशन फ़्रेम में एक ही लेखन तक समेटा जाता है।
- एक स्विच इसे हर खुले टैब से तुरंत हटा देता है।
इनमें से कुछ भी शेखी नहीं है — यह न्यूनतम है। जिस चीज़ का पूरा काम देखने में अच्छा लगना हो, उसे कुछ भी धीमा करने का कोई हक़ नहीं है।
कुत्ते को देखिए