2011-09-18 18 views
5

मैं jQuery के साथ डोम मैनिपुलेशन सीख रहा हूं और ब्राउज़र प्रदर्शन सर्वोत्तम प्रथाओं को समझना चाहता हूं।jQuery डोम मैनिपुलेशन - प्रदर्शन तुलना?

कहें कि मेरे पास दो डोम तत्व हैं (div, p, ol, आदि) और मैं चाहता हूं कि उपयोगकर्ता केवल पहला तत्व देखें और फिर केवल दूसरा तत्व देखें।

मैं सकता है:

  1. उपयोग की जगह()
  2. निकालें() पहला तत्व और (दूसरा तत्व
  3. छिपाने() पहला तत्व और शो() दूसरा तत्व
  4. जोड़ें)

क्या के प्रदर्शन के बीच मतभेद है:

  • 1 बनाम 2
  • 2 बनाम 3
  • 1 बनाम 3

वहाँ अतिरिक्त प्रदर्शन विचार कर रहे हैं, तो तत्व विभिन्न प्रकार के कर रहे हैं? या यदि तत्व बटन या फॉर्म फ़ील्ड हैं?

+1

मैं कहूंगा कि यह इस बात पर निर्भर करता है कि आप अपना मार्कअप कैसे और कहां उत्पन्न करते हैं (यानी आप कितने लचीले होने की आवश्यकता है) उदाहरण के लिए, जब आप प्रतिस्थापित/निकालें/जोड़ रहे हैं तो आपको सामग्री जेएस-साइड जेनरेट करना होगा। यदि आप वास्तव में प्रदर्शन में रुचि रखते हैं तो आप आसानी से यहां अपने मामलों का परीक्षण कर सकते हैं: http://www.jsperf.com – m90

उत्तर

6

browser reflow की वजह से डीओएम में तत्वों को हटाने और जोड़ने के संसाधनों के मामले में महंगा है, जहां ब्राउज़र को भाग या सभी पृष्ठ को फिर से प्रस्तुत करना होगा। जब भी आप कर सकते हैं आप रिफ्लो से बचना चाहते हैं; वे महंगे हैं।

प्रतिस्थापन अनिवार्य रूप से एक निकालना है, तो उपरोक्त लागू होता है।

दिखा रहा है और छुपा रहा है, क्योंकि यह केवल तत्वों को शैलियों को जोड़ रहा है।

इन तरीकों को लागू करने वाले तत्वों के प्रकार को उपरोक्त में परिवर्तन नहीं करना चाहिए।

निष्कर्ष में, .show() और .hide() का सर्वोत्तम प्रदर्शन के लिए उपयोग करें।

+0

रिफ्लो के बारे में नोट के लिए धन्यवाद। –

+0

धन्यवाद @ एलेक्स! अधिक जानकारी (आपके लिंक के अतिरिक्त) में रुचि रखने वाले पाठकों के लिए, मुझे [ओपेरा टीम से] साझा करने के लायक एक और वर्णनात्मक लेख मिला (http://dev.opera.com/articles/view/efficient-javascript/?page=3) –

1

असल में यदि आप कुछ छिपाना नहीं चाहते हैं और फिर इसे बाद में दिखाएं, तो हमेशा छुपाएं() और दिखाएं()। यह डोम के बारे में कुछ भी नहीं बदलेगा, बस जिस तरह से प्रदर्शित होता है उसे बदलता है।

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