कुछ महीने पहले this article ने बताया कि कक्षाओं को वास्तव में वेबसाइट विकास से सभी से बचा जा सकता है।कक्षा चयनकर्ताओं से डेटा विशेषता सीएसएस चयनकर्ता तेजी से हैं?
मेरा सवाल है, कक्षा चयनकर्ताओं की तुलना में डेटा चयनकर्ता कितने कुशल हैं?
वाले तत्वों के लिए class='class1 class2 something anotherClass'
वाले तत्वों के लिए पूछताछ की तुलना करना एक साधारण उदाहरण होगा।
[data-<attr>='<value>']
चयनकर्ता वर्ग स्ट्रिंग बनाम पूर्ण रूप से मूल्य की जांच करेगा जिसे विभाजित किया जाना चाहिए। इस बात को ध्यान में रखते हुए, डेटा एट्रिब्यूट तेजी से होना चाहिए।
तो, प्रश्न को परिष्कृत करने के लिए, सीएसएस के मामले में, क्या हम कक्षा चयनकर्ता या डेटा चयनकर्ता के साथ बेहतर हैं? और जावास्क्रिप्ट बिंदु से, jQuery("[data-component='something']")
jQuery(".something")
से अधिक कुशल होगा?
मैं किस तरह पता नहीं है की कोशिश कर सकते वेब प्रोग्रामिंग उस लेख की सोफस्ट्री के लिए प्रासंगिक है, लेकिन मुझे पूरा यकीन है कि मेरे पास जो कुछ भी है उसके साथ कुछ भी नहीं है। साथ ही, यदि आप उस आलेख को बारीकी से पढ़ते हैं, तो मुझे संदेह है कि इसके लेखक को कक्षाओं के साथ 'डेटा-' विशेषताओं के साथ उतना ही चिंता होगी; वे दोनों एक ही "अपराध" का प्रतिनिधित्व करते हैं। – Pointy
आपके प्रश्न के अनुसार, कुछ [jsperf] (http://jsperf.com) परीक्षण प्रश्न का उत्तर देने में मदद कर सकते हैं। मुझे संदेह है कि 'querySelectorAll()' आदि वाले किसी भी आधुनिक ब्राउज़र को या तो दृष्टिकोण के साथ कोई कठिनाई नहीं होगी। – Pointy
जितना अधिक मैं डेटा एट्रिब्यूट्स के बारे में सोचता हूं और कक्षाओं को जोड़ने के बजाए उन्हें स्टाइल करता हूं जितना मैं उन्हें पसंद करता हूं। उदाहरण के लिए, तथ्य यह है कि एक ब्लॉक तत्व (एक खोज बॉक्स की तरह) छुपाया जा सकता है डेटा-राज्य = 'छुपा' द्वारा संकेत किया जा सकता है। यह मेरे लिए आसान लगता है, एक डेवलपर पढ़ने के लिए, 'घटक विजेट-हेडर टच करने योग्य छुपे हुए गोलाकार शीर्ष' से। –