ठीक है, बस मुझे मेरे द्वारा किए गए सभी नेक्रो पर क्रिप्ट कीपर कहें, लेकिन मुझे कभी नहीं लगा कि इसका सही मूल्य ठीक से नहीं समझा गया है। ऐतिहासिक रूप से, यह दावा किया गया है कि "विनीत जावास्क्रिप्ट" या, अपने जेएस को एचटीएमएल से बाहर रखना इनलाइन एचटीएमएल ईवेंट हैंडलर विशेषताओं और स्क्रिप्ट टैग के माध्यम से जो किसी फ़ाइल को जितना संभव हो उतना लिंक नहीं करता है: का एक बड़ा महत्वपूर्ण तत्व है:
- पहुंच की चिंता
- एसईओ
- और प्रगतिशील वृद्धि
निहित है! (अच्छा, अब वे होंगे)
इस मामले की सच्चाई यह है कि, आप तकनीकी रूप से अप्रिय जावास्क्रिप्ट कर सकते हैं और अभी भी उपरोक्त तीन वस्तुओं को बंद कर सकते हैं। जब तक आप HTML कंटेंट को गतिशील रूप से नहीं बना रहे थे जो कि दिन में एक बड़ा SEO no-no था।
लेकिन बंद करो और सोचो ... तुम्हारे बारे में!
वास्तव में, बड़ा लाभ, जुदाई बनाए रखने की प्रमुख और सबसे बड़ी जीत हमेशा से प्रत्यक्ष लाभ रही है जो डेवलपर इससे बाहर हो जाता है। आपके पास उतने ही इवेंट हैंडलर हो सकते हैं जितने आप उसी HTML एलिमेंट पर उसी इवेंट के लिए चाहते हैं जितना सुविधाजनक है। इसका मतलब है कि अगर एक टैग को class="some_class"
हमेशा एक निश्चित व्यवहार मिलता है, लेकिन यह एक id="bonus_behavior"
div के अंदर होने पर कुछ बोनस व्यवहार भी प्राप्त करता है , तो हमें अपने एक-अनुमति वाले इवेंट हैंडलर के अंदर तर्क के साथ खिलवाड़ शुरू नहीं करना है। हम केवल संदर्भ के आधार पर हैंडलर जोड़ या नहीं सकते हैं।
पढ़ने में भी आसान
एक और लाभ सुपाठ्य है। यह एक अधिक महत्वपूर्ण चिंता का विषय था जब ब्राउज़र टूल्स में IE के विशेष त्रुटि संदेश शामिल थे, जिसमें कहा गया था कि कुछ गड़बड़ थी [object]
लेकिन IMO, यह अभी भी एक बड़ी बात है। यहाँ CSS, JS वहाँ और HTML वह स्थान है जहाँ वे और सर्वर दोनों मिलते हैं। उन सभी चीजों के एक साथ एक जगह पर आने से यह समझ में आता है कि एब्सट्रैक्शन की एक परत बनाने के लिए हुक (आईडी, क्लासेस, और पदानुक्रम) पर भरोसा करना पड़ता है जो कि सब कुछ HTML से कनेक्ट करने के लिए उपयोग करता है।
IMO, जितना अधिक आप अपने HTML, CSS, और JS को रख सकते हैं उतना आसान है कि इसे न केवल पढ़ने के लिए बल्कि संशोधित करने और समझने में भी आसान है कि क्या चल रहा है। मुझे एक क्लास के रूप में "डायनेमिक_कॉम्बोबॉक्स" के साथ एक खाली डिव दिखाई देता है और मेरे पास एक अच्छा विचार है कि कुछ ऐसा किया जा रहा है जो डायनेमिक रूप से डेटा लोड करता है। मेरे पास इस बात की अगुवाई है कि जेएस और सीएसएस में कैसे पाया जाए और अगर मैं उन चिंताओं में वर्ग में चला जाऊं, तो मुझे एक अच्छा विचार होगा कि यह क्या है और इसे HTML में कैसे खोजना है।
बहुत आसान बनाने के लिए भी मैला
और निश्चित रूप से सुवाह्यता स्थिरता के साथ हाथ से चली जाती है। जब आप बस इसे सीधे स्क्रिप्ट टैग्स में डंप करके करते हैं, जहां प्रासंगिक HTML होता है, जैसा कि अक्सर नहीं होता है, तो लोगों के लिए सिर्फ उस स्क्रिप्ट को दूसरे पेज के HTML में कट और पेस्ट करना आसान हो जाता है, जब वे काम कर रहे होते हैं वे इसी तरह की कार्यक्षमता चाहते हैं जिसका मतलब है कि आपके पास अब एक चीज है जो सबसे अधिक संभावना है कि अंततः दो समान रूप से समान हो जाएंगे, लेकिन 100% समान चीजें नहीं हैं, जिनका व्यवहार उम्मीदों को धता बताकर समय के साथ समस्याग्रस्त हो सकता है और अपवादों को संभालने के लिए अधिक व्यर्थ शाखाओं के योग की आवश्यकता होती है। दूसरे ने नहीं किया।
इसलिए उन एचटीएमएल हुक के साथ व्यवहार में हेराफेरी करना एक स्मार्ट तरीके से कोड री-यूज़ को प्रोत्साहित करता है। यदि आपको एक वैकल्पिक कार्यान्वयन के लिए व्यवहार को शाखा देने की आवश्यकता है, तो आप बस उसी फ़ंक्शन पर जाते हैं और इसे HTML पदानुक्रम या शायद डेटा-एट में कुछ ऊपरी-व्यवहार को ट्रिगर करने के साथ संभालते हैं। यह किसी को समझने की चाहत के लिए एक खरीदारी है, जो यूआई के तत्वों को एक निश्चित प्रकार के काम के रूप में बताता है और जो घृणित रूप से आलसी-ए-खराब तरीके से काटते हैं और पेस्ट प्रकार सही / अधिक-बनाए रखने योग्य काम करेंगे क्योंकि यह सबसे आसान काम है अब करें और यह सबसे अच्छा तरीका है कि स्थिरता बनाए रखें। घबराहट या उदासीनता के कारण कम से कम देखभाल नहीं कर सकने वाले लोगों के लिए भी यह सबसे आसान "डुह" चीज बनाएं।
लेकिन 2014 के बारे में क्या?
यह एक कानूनी बिंदु हो सकता है कि आधुनिक सिंगल-पेज एप्लिकेशन में, इनमें से कुछ स्टिकलर चीजों को शायद हठधर्मिता के रूप में नहीं पकड़ा जाना चाहिए क्योंकि वे मेरे साथ हैं, लेकिन मुझे विश्वास है कि जब मैं कहता हूं कि मुझे नहीं लगता कि मैं अकेला हूं इस पर बेचा गया था क्योंकि यह अंततः काम को आसान बनाता है। मैं आलसी हूँ (मुझे उम्मीद है) ज्यादातर-अच्छा-तरीका है। मुझे यह पसंद है जब मुझे केवल एक जगह पर चीजों को बदलना होता है एक ऐप पर सभी को बदलने के लिए, जब मुझे केवल एक जगह देखना होगा कि बग क्या है, और जब मुझे एक आसान समय समझ में आता है कि बिल्ली क्या है चल रहा है और कैसे सबसे अच्छा कुछ समान करने के लिए उस कोड का फिर से उपयोग करने के लिए।
यह अच्छा है जैसे डीबी या डेटा-लेयर को अलग करना अच्छा है। यह आखिरकार एक क्यों-नहीं-मैं-बस-उस-समय-सेवर है, जैसे कि अपने मुक्केबाजों को फीभायुक्त करने और अगले दिन सुबह गंध की जांच करने के बजाय 10 मिनट लगाने से पहले रात को कपड़े धोने के लिए पांच मिनट का समय लेना चाहिए।
मेरे लिए, यह उन स्वार्थी प्रेरणाएं हैं जो हमेशा मुख्य बिंदु रही हैं कि मैं क्यों न केवल विनीत जेएस पर पकड़ रखता हूं, बल्कि शैली / व्यवहार / सामग्री की चिंताओं को जितना संभव हो उतना अलग भी कर सकता है-यहां तक कि व्हाट-फ्रीकिंग-डब्लूजी भी उनके लिए सबसे खराब है। बहुत भयानक और शांत / आसान तरीके से उन चिंताओं को मिटाना।
अब जब सब लोग एसपीए कर रहे हैं और यह लगभग मूर्खतापूर्ण व्यवसाय को समझाने की कोशिश कर रहा है कि हमें उन लोगों के बारे में परवाह करनी चाहिए जो जेएस के बिना चलते हैं (पहुंच अब हो सकती है, माना जाता है, जेएस-जनित सामग्री के साथ संभाला जा सकता है), ऐसा लगता है कि जेएस की अगली पीढ़ी की देखभाल कम है इसके बारे में लेकिन IMO, वहाँ अभी भी एक जीत है और यह ज्यादातर आपके लिए है, डेवलपर इस सामान को लिखता है और बनाए रखता है। और वास्तव में, यह जीत हमेशा सबसे कम अंक वाली होनी चाहिए थी, लेकिन कभी किसी कारण से नहीं हुई क्योंकि यह अंततः आपको लाभ देती है और आसान ट्वीक / संशोधित / डिबग होने के गुण के माध्यम से खुश दुर्घटना से उत्पाद भी।
क्या यह कभी ठीक है?
खैर, मुझे लगता है। एक प्रतियोगिता या कुछ के लिए एक डिस्पोजेबल थ्रो दूर अनुप्रयोग में हो सकता है। लेकिन मैं इसे अभी भी करूंगा क्योंकि मैं इसकी आदत में हूं और वास्तव में ऐसा करना कठिन नहीं है।