2012-12-10 22 views
8

जनवरी 2011 में जॉन रेसिग द्वारा लिखित oft-cited blog post है जो विंडो स्क्रॉल ईवेंट में हैंडलर को जोड़ने के खिलाफ सलाह देता है।

इसके बजाय, आम ज्ञान उदाहरण के लिए अपने हैंडलर रुके, कहते हैं:

$(window).scroll(_.throttle(myScrollHandler, 250)); 

मेरी हाल ही में परीक्षण में, यूआई प्रतिक्रिया बहुत चिकनी जब हैंडलर पुस्तक घटना के लिए सीधे जुड़ा हुआ है है। हैंडलर थ्रॉटलिंग एक दृश्य अंतराल का कारण बनता है।

क्या आधुनिक ब्राउज़र ने इस समस्या को हल किया है? क्या कोई परीक्षण या ब्राउज़र संगतता डेटा उपलब्ध है?

+0

अभी भी अधिकांश ब्राउज़रों में एक बार कई बार आग लगती है – charlietfl

+2

'हैंडलर थ्रॉटलिंग एक दृश्य अंतराल का कारण बनता है '- क्योंकि आपको थ्रॉटलिंग के बिना अधिक ईवेंट हिट मिल रही हैं। यदि आपका तरीका उचित हार्डवेयर और उचित रूप से आधुनिक ब्राउज़र पर अच्छा काम करता है, तो हर तरह से, इसके लिए जाएं। लेकिन उन लोगों का सम्मान करें जिनके पास अत्याधुनिक ब्राउज़र या कंप्यूटर नहीं हैं। यह भी देखें http://benalman.com/projects/jquery-throttle-debounce-plugin/ –

+0

आप विलंब को थोड़ा कम करने का भी प्रयास कर सकते हैं। 250 पर, आपका .scroll इवेंट केवल प्रति सेकंड चार बार निष्पादित करने जा रहा है। –

उत्तर

6

थ्रॉटल प्रत्येक सेकेंड में 4 की घटनाओं की संख्या को कम कर देता है। थ्रॉटलिंग के बिना, प्रति सेकंड आग लगने के लिए घटनाओं की एक बड़ी संख्या के लिए संभव है। प्रति सेकंड 4 मानव आंखों द्वारा आसानी से पता लगाया जा सकता है (आप जो कर रहे हैं उसके आधार पर)।

चाहे आप अभी भी को थ्रॉटल करने की आवश्यकता है, यह वास्तव में आपके ग्राहकों पर निर्भर करता है। यदि आप आईई 6 का उपयोग कर खराब ग्राफिक्स कार्ड वाले बहुत पुराने कंप्यूटर से निपट रहे हैं, तो हाई स्पीड इवेंट फायरिंग शायद बहुत अधिक ध्यान देने योग्य समस्याएं पैदा करेगी। यह भी निर्भर करता है कि आपकी स्क्रॉल इवेंट वास्तव में क्या कर रहा है (यह कितना समय लगता है कि यह स्मृति का उपभोग करता है और यह कितनी तेजी से इसे जारी करता है, आदि)

संबंधित मुद्दे