2012-12-03 8 views
45
document.getElementById("elementId").style.display="none" 

जावास्क्रिप्ट में किसी तत्व को छिपाने के लिए उपयोग किया जाता है। लेकिन jQuery में,जावास्क्रिप्ट style.display = "none" या jQuery .hide() अधिक कुशल है?

$("#elementId").hide(); 

उसी उद्देश्य के लिए उपयोग किया जाता है। किस तरह से अधिक कुशल है? मैंने दो jQuery फ़ंक्शन .hide() और .css("display","none")here के बीच तुलना देखी है।

लेकिन मेरी समस्या यह है कि शुद्ध जावास्क्रिप्ट jQuery से अधिक कुशल है या नहीं?

+0

[.hide() या प्रदर्शन का संभावित डुप्लिकेट: कोई नहीं? jQuery] (http://stackoverflow.com/questions/4396983/hide-or-display-none-jquery) –

उत्तर

82

दक्षता के बारे में बात कर रहे:

document.getElementById('elemtId').style.display = 'none'; 

क्या jQuery अपने .show() और .hide() तरीकों के साथ करता है कि यह एक तत्व की पिछले राज्य याद करते है। यह कभी-कभी काम में आ सकता है, लेकिन चूंकि आपने दक्षता के बारे में पूछा है जो इससे कोई फर्क नहीं पड़ता।

+1

हां यह अधिक कुशल है लेकिन यह सुरक्षित नहीं है। मेरे काम में एक बड़ा वेब एप्लिकेशन है जो काफी पूरी तरह कॉन्फ़िगर करने योग्य है, इसलिए संदर्भ और कॉन्फ़िगरेशन के आधार पर कुछ आइटम पृष्ठ में हो सकते हैं या नहीं भी हो सकते हैं। यदि यह तत्व पृष्ठ में मौजूद नहीं है, तो यह एक त्रुटि उत्पन्न करेगा (एक अपरिभाषित वस्तु पर .style का उपयोग कर)। JQuery के साथ आपको वह समस्या नहीं होगी, या यदि आपको ऐसा करने से पहले 'if (document.getElementById ('elemtId')) जांचना चाहिए। – dominicbri7

+0

यहां कोई भी बेंचमार्क संभव है? :) – rogerdpack

8

हां।

हां यह है।

Vanilla JS हमेशा अधिक कुशल है।

25

99.9 99 999% स्थितियों में इस तरह की किसी चीज़ के लिए दक्षता कोई फर्क नहीं पड़ता है। जो कुछ भी पढ़ने और बनाए रखना आसान है, करो।

मेरे ऐप्स में मैं आमतौर पर छिपाने और दिखाने के लिए कक्षाओं पर भरोसा करता हूं, उदाहरण के लिए .addClass('isHidden')/.removeClass('isHidden') जो मुझे चाहता था कि CSS3 के साथ चीजों को एनिमेट करने की अनुमति दे। यह अधिक लचीलापन प्रदान करता है।

+2

मैं यह नहीं कहूंगा। कॉल की संख्या के आधार पर, यह * कारक बन सकता है *, क्योंकि हम हर बार jQuery कन्स्ट्रक्टर विधि को कॉल कर रहे हैं। – jAndy

+1

यदि आप यह कर रहे हैं> एक ​​सेकंड में 10,000 बार यह ध्यान देने योग्य हो सकता है। मैं इसे साबित कर सकता हूं :) –

+6

http://jsperf.com/jquery-hide-vs-native33 - कृपया फिर से आएं .. – jAndy

22
a = 2; 

बनाम

a(2); 
function a(nb) { 
    lot; 
    of = cross; 
    browser(); 
    return handling(nb); 
} 

अपने राय में, तुम्हें क्या लगता है सबसे तेजी से होने जा रहा है?

+2

इसने मुझे हंस दिया, और सबसे अच्छा जवाब है, अच्छा है। –

+0

कूल स्पष्टीकरण।lol – bot

+0

सबसे अच्छा स्पष्टीकरण नहीं है लेकिन 'बहुत कुछ का संदेश; = क्रॉस; ब्राउज़र(); हैंडलिंग ... 'मुझे आपको डाउनवोट नहीं देता है: पी –

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