2010-02-22 17 views
5

में 'className' संपत्ति को संशोधित करना बेहद धीमा है मेरी वेबसाइट पर, मैं गतिशील रूप से एक डीवीवी की जावास्क्रिप्ट 'className' प्रॉपर्टी को संशोधित करता हूं। हालांकि यह एक बेहद महंगी ऑपरेशन है, क्योंकि डीआईवी में बहुत से बच्चे नोड्स होते हैं। कभी-कभी इसमें 1.5 सेल्स लगते हैं।आईई 7

क्या इस ऑपरेशन को तेज करने का कोई तरीका है? जैसे, सामग्री छिपाना, ऑपरेशन करना, फिर सामग्री को फिर से दिखाना?

अद्यतन:

कुछ अतिरिक्त जानकारी।

वास्तविक कोड:

$("#myDiv").tabs(); 

यह witin .ready() हैंडलर स्थित है। http://jqueryui.com/demos/tabs/

यह महंगा कॉल है। मैंने इसे कक्षा नाम संपत्ति पर आगे ट्रैक किया, जो उस प्रसंस्करण समय का उपभोग करता है।

DIV एक बड़ा SharePoint datagrid होता है, http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spview.renderashtml.aspx देखने के कोड, शेयरप्वाइंट पर चलाया जाता है पर WinXP + IE7 का परीक्षण किया।

तो मुझे आश्चर्य है कि क्या हम डोम या उस तरह कुछ ऐसा करने के दौरान लेआउट रीफ्रेशिंग को अक्षम कर सकते हैं। क्या कोई चाल है?

+1

कोड कैसा दिखता है जैसा कि आप वर्तमान में संशोधन करने के लिए उपयोग कर रहे हैं? –

+1

क्या आप अपना इस्तेमाल कर रहे कोड को दिखा सकते हैं, और HTML (या इसका नमूना) जिसे संशोधित किया जा रहा है? –

+0

क्या आपने elem.setAttribute ("class", 'newclassname') की कोशिश की है? – amphetamachine

उत्तर

3

यह सुनिश्चित करने का प्रयास करें कि सीएसएस चयनकर्ता जो कंटेनर के भीतर निहित तत्वों को प्रभावित करते हैं जिनके वर्ग का नाम बदल रहा है, उन्हें वास्तव में कंटेनर क्लास का उपयोग करना पड़ता है जब उन्हें वास्तव में करना होता है। जाहिर है, जब आप कंटेनर क्लास के साथ लेआउट चला रहे हैं, तो शायद बहुत सी चीजें प्रभावित होती हैं, लेकिन कभी-कभी div.whatever td.currency में ड्रॉप करना आसान होता है जब आपको वास्तव में td.currency (केवल एक बना हुआ उदाहरण) चाहिए।

आईई लेआउट इंजन कुछ चीजों के लिए वास्तव में तेज़ है, लेकिन मुझे पता चला है कि इस प्रकार की लेआउट तकनीक का भारी उपयोग (जो मुझे विश्वास है, सामान्य रूप से बहुत अच्छा अभ्यास) ब्राउज़र को बहुत कर सकता है। शुक्र है, आईई 8 इस तरह की चीज पर बहुत बेहतर है।

0

className संपत्ति को बदलने से पहले अपने माता-पिता से स्विच करने के लिए दो टैब को हटाकर टैब स्विच करते समय ~ 50% प्रदर्शन सुधार प्राप्त किया। कार्यान्वयन के विवरण के लिए, https://developers.google.com/speed/articles/javascript-dom