5

में प्रदर्शन प्रदर्शन मैं एक div के भीतर छवि स्क्रॉल करने के लिए jQuery .scrollTop का उपयोग कर रहा हूँ। यह फ़ायरफ़ॉक्स में बहुत अच्छा काम करता है - स्क्रॉलिंग बहुत चिकनी और तेज़ है। आईई 8 स्क्रॉलिंग में बहुत धीमी और गड़बड़ है - एक बार लगभग एक सेकंड में छवि स्क्रॉल - दो सेकंड। छवि का आकार औसतन 2000 * 2000 और 4000 * 4000 पिक्सेल के बीच है।jQuery स्क्रॉल आईई 8

आईई 8 के लिए इसे सुधारने का कोई तरीका है?

आईई 7 में प्रदर्शन थोड़ा बेहतर है, लेकिन अभी भी पर्याप्त नहीं है।

धन्यवाद

संपादित करें: मुझे विश्वास है कि एक मुद्दा मैं दोनों स्क्रॉल बार (ओवरफ़्लो- एक्स और अतिप्रवाह-y) सक्षम है कि कैसे स्क्रॉल IE 7 और 8 में कार्यान्वित किया जाता है, और मैं इन स्क्रॉल बार का उपयोग कर एक छवि स्क्रॉल करने का प्रयास किया। समस्या बिल्कुल वही है। मैंने इसे एक बहुत ही कम बिजली वाले पीसी - पेंटियम डुअल कोर पर 2 जीबी रैम के साथ-साथ कोर i7 डेस्कटॉप के साथ 2.8 गीगाहर्ट्ज सीपीयू 1600 मेगाहर्ट्ज रैम के साथ चलाने के लिए कोशिश की है और परिणाम लगभग समान हैं। फ़ायरफ़ॉक्स बहुत तेज स्क्रॉल करता है, हालांकि औसत पर इसका सीपीयू उपयोग IE CPU उपयोग से 10% अधिक है। यह मुझे परेशान करता है ... निश्चित रूप से माइक्रोसॉफ्ट ने अब तक इस मुद्दे को संबोधित किया होगा?

एक और चीज जो मुझे थोड़ा अजीब मिली है वह यह है कि कोर 2 डुओ लैपटॉप पर स्क्रॉलिंग तेजी से बढ़ी है। मैं सोच रहा हूं कि ग्राफिक्स कार्ड ड्राइवरों के साथ इसका कोई संबंध नहीं है ... क्या आईई 7/8 भी GPU का उपयोग करता है?

मुझे माफ करना अगर यह के किसी भी मूर्खतापूर्ण लगता है, लेकिन मैं वास्तव में इस समस्या को हल करने में दिलचस्पी रखता हूँ ... आईई .. कि बुरा नहीं हो सकता

+0

मुझे आपके प्रश्न का तत्काल उत्तर नहीं पता है, लेकिन स्पष्ट रूप से प्रदर्शन क्लाइंट मशीन के चश्मा पर आधारित होगा - इस उदाहरण में, मुझे संदेह है कि स्मृति और पेजिंग बाधा होगी। यह पुष्टि करने के लिए कि यह छवि के आकार से संबंधित एक मुद्दा है, संकीर्ण (1-2 पीएक्स) करें लेकिन लंबी छवियों में एक ही समस्या है? – Basic

+0

हाय, यह 2 जीबी रैम और एकीकृत ग्राफिक्स कार्ड के साथ किसी भी औसत कोर 2 जोड़ी पर ठीक चलता है। मुझे नहीं लगता कि मशीन का प्रदर्शन एक मुद्दा है, खासकर क्योंकि यह फ़ायरफ़ॉक्स में कम से कम दोगुना चलता है। –

+0

कृपया संपादित करें देखें –

उत्तर

6

jQuery के .scrollTop() बेहद यानी में धीमी है, और अगर मार्कअप थोड़ा जटिल या बड़ा भी है, आप इसे कभी भी अच्छा प्रदर्शन करने के लिए नहीं पाएंगे।

समाधान jQuery .scrollTop() फ़ंक्शन का उपयोग नहीं करना है, लेकिन मूल गुणों .scrollHeight और .scrollTop पर आधारित स्वयं का निर्माण करना है।

कारण है यानी ऑफसेट्स की गणना करता है, जो jquery के .scrollTop() धीमेपन का आधार है - आपको डीओएम पेड़ को चलना होगा और प्रत्येक माता-पिता के लिए ऑफ़सेट की गणना करना होगा।

jQuery यह सबसे अच्छा कर सकता है, लेकिन आप हमेशा इसे तेजी से करने में सक्षम होंगे क्योंकि आप पहले से मार्कअप को जानते हैं और इसे अनुकूलित कर सकते हैं - आप ऑफ़सेट गणना को अधिकतर समय में अग्रिम में भी कर सकते हैं और बस उपयोग कर सकते हैं संशोधक के रूप में एक स्थिर।

यह सब कहा गया है, यह jQuery की गलती नहीं हो सकती है - यह केवल यानी रेंडरिंग पाइपलाइन के साथ एक समस्या हो सकती है - इस पर निर्भर करता है कि आपने अपना मार्कलअप और स्टाइल कैसे बनाया है, एक स्क्रॉल बलपूर्वक पूरी तरह से पृष्ठ को फिर से प्रस्तुत/पुन: प्रस्तुत करने के लिए मजबूर हो सकता है आपके द्वारा स्क्रॉल किए जाने वाले प्रत्येक पिक्सेल के लिए, और यह सब एक क्रॉल में धीमा कर देगा।