मैं लगभग 10 वर्षों से वेब डेवलपर हूं और जब भी संभव हो, तो जावास्क्रिप्ट का उपयोग नहीं करने की कोशिश करने की आदत डाल ली है। मैं यहां वेब ऐप्स बनाने की बात नहीं कर रहा हूं, लेकिन डेटाबेस संचालित वेबसाइट्स।
क्या यह एक अच्छा / सम्मानित दृष्टिकोण है?
मैं लगभग 10 वर्षों से वेब डेवलपर हूं और जब भी संभव हो, तो जावास्क्रिप्ट का उपयोग नहीं करने की कोशिश करने की आदत डाल ली है। मैं यहां वेब ऐप्स बनाने की बात नहीं कर रहा हूं, लेकिन डेटाबेस संचालित वेबसाइट्स।
क्या यह एक अच्छा / सम्मानित दृष्टिकोण है?
जवाबों:
यह सभी प्रकार के कोड को कम करने के लिए अधिकांश प्रोग्रामर की वृत्ति है । कम कोड, कम जटिलताएं और उक्त कोड में संभावित त्रुटि के कम अंक। यह नियम जावास्क्रिप्ट के साथ-साथ अन्य भाषाओं पर भी लागू होता है। आप सिर्फ परंपरा को बरकरार रख रहे हैं।
HTML पृष्ठों में आवश्यकतानुसार / वांछित के रूप में जावास्क्रिप्ट का उपयोग करें ... लेकिन इसका उपयोग करने का कोई कारण नहीं है जब इसकी वास्तव में आवश्यकता न हो।
10 साल पहले, यह एक अच्छा विचार हो सकता है। आजकल इंटरनेट के अधिकांश भाग (- कम से कम कुछ बहुत लोकप्रिय हिस्से -) लगभग अनुपयोगी हो गए हैं, या केवल एक बहुत ही सीमित कार्यक्षमता प्रदान करते हैं, जब ब्राउज़र में जावास्क्रिप्ट अक्षम करते हैं। तो IMHO आज आप अपने उपयोगकर्ताओं को जावास्क्रिप्ट सक्षम करने की उम्मीद कर सकते हैं।
और ब्राउज़र असंगतताओं को प्राप्त करने के लिए JQuery जैसी बहुत सारी रूपरेखाएँ हैं। IMHO आज कोई वास्तविक कारण नहीं है कि आपको अपनी वेबसाइट के लिए जावास्क्रिप्ट का उपयोग न करके खुद को प्रतिबंधित करना चाहिए - केवल कारण यह हो सकता है कि आपके पास इसका कोई उपयोग नहीं है।
संपादित करें: एक अलग प्रश्न यह है: यदि आपको अपने वेब साइट की कुछ न्यूनतम कार्यक्षमता प्रदान करनी चाहिए, जब आपके आगंतुक जेएस सक्षम नहीं होते हैं - तो यह ज्यादातर एक अच्छा विचार है, क्योंकि कुछ टिप्पणीकारों ने बताया है।
EDIT2: निश्चित रूप से हर वेब साइट के लिए, उपयोगकर्ता-मित्रता, खोज-इंजन-अनुकूलता और विकास के प्रयासों के बीच एक संतुलन खोजना होगा। IMHO आज जावास्क्रिप्ट उस संतुलन को बेहतर बनाने में मदद कर सकता है - अगर बुद्धिमानी से उपयोग किया जाए। कहा कि, मुझे लगता है कि उस संतुलन को बनाए रखने के लिए आज जावास्क्रिप्ट उपयोग को कम से कम करने की आवश्यकता नहीं है। देखभाल के साथ इसका उपयोग करें, और इसे प्रदर्शन न करें।
जावास्क्रिप्ट के बिना इस्तेमाल किया जा सकता है कि एक साइट होने का मतलब है कि यह व्यापक संभव दर्शकों के लिए उपलब्ध है। हालांकि यह सच है कि अधिकांश ब्राउज़र जावास्क्रिप्ट का समर्थन करते हैं और अधिकांश उपयोगकर्ता इसे डिफ़ॉल्ट रूप से छोड़ देते हैं, आप निश्चित रूप से उस पर भरोसा नहीं कर सकते। सब कुछ नहीं जो आपकी साइट तक पहुंचता है सब के बाद एक ब्राउज़र है; यदि आप चाहते हैं कि आपकी साइट Google जैसे खोज इंजन द्वारा ठीक से अनुक्रमित हो, तो GoogleBot को जावास्क्रिप्ट के बिना आपकी साइट को नेविगेट करने में सक्षम होने की आवश्यकता है।
वेब ब्राउज़िंग सॉफ़्टवेयर के विशेषज्ञ टुकड़े भी हैं जहाँ जावास्क्रिप्ट अनुपलब्ध है या अपेक्षा के अनुरूप काम नहीं करता है। उदाहरण के लिए, नेत्रहीनों द्वारा उपयोग किया जाने वाला स्क्रीन-रीडिंग या ब्रेल सॉफ्टवेयर। ऐसे वातावरण भी हैं जहाँ मेमोरी बाधित होती है और भारी मात्रा में जावास्क्रिप्ट होने से ब्राउज़िंग अनुभव अप्रिय या अव्यवहारिक हो सकता है, जैसे कि स्मार्टफोन ब्राउज़र।
आपको "प्रगतिशील वृद्धि" की अवधारणा पर ध्यान देना चाहिए, जहां आप जावास्क्रिप्ट के बिना काम करने के लिए एक साइट का निर्माण करते हैं, फिर उपयोगकर्ता अनुभव को बेहतर बनाने के लिए शीर्ष पर एक जावास्क्रिप्ट परत जोड़ें। इस तरह आपके पास एक ऐसी साइट होगी जो बिना जावास्क्रिप्ट के लोगों के लिए कम से कम उपयोग करने योग्य है।
आपको हर संभव सुविधा प्रदान करने के लिए प्रयास करने की आवश्यकता नहीं है जिसे आप जावास्क्रिप्ट के साथ गैर-जावास्क्रिप्ट ब्राउज़रों पर लागू करने की योजना बना रहे हैं, लेकिन यह अभी भी कम से कम जावास्क्रिप्ट के बिना उपलब्ध बुनियादी उपयोग के मामलों को छोड़ने के लिए महत्वपूर्ण है। साइट को ब्राउज़ करने में सक्षम होना स्पष्ट रूप से सूची में सबसे ऊपर है, लेकिन यदि आप ई-कॉमर्स साइट का निर्माण कर रहे हैं, तो चेकआउट प्रक्रिया को जावास्क्रिप्ट-निर्भर बनाना मूर्खतापूर्ण होगा क्योंकि यह आपकी बिक्री पर खर्च कर सकता है।
अन्य जवाब "मैं कभी जावास्क्रिप्ट का उपयोग नहीं करना चाहिए" पर ध्यान केंद्रित करने लगता है, इसलिए मुझे लगता है कि वे इस बिंदु को याद कर रहे हैं। यदि आपको इसकी आवश्यकता नहीं है तो आपको जावास्क्रिप्ट का उपयोग नहीं करना चाहिए। कुछ लोग हर चीज के लिए जावास्क्रिप्ट का उपयोग करते हैं :
href
उचित होने पर होना चाहिए )लाभ इस प्रकार हैं:
href
लिंक होने से खोज इंजन, उन उपयोगकर्ताओं को मदद मिलती है जो अन्य टैब में लिंक खोलना चाहते हैं, और जो उपयोगकर्ता जावास्क्रिप्ट से नफरत करते हैंबेशक, AJAX बहुत अच्छा है, और इसलिए गतिशील पृष्ठ हैं, इसलिए उन चीजों को सिर्फ इसलिए फेंक न दें क्योंकि कुछ लोगों को उनकी आवश्यकता नहीं है।
मेरा कहना है, जावास्क्रिप्ट के बिना चीजों को कैसे करना है, यह सीखना अच्छा है, जावास्क्रिप्ट को कम करना अच्छा है, और जब जावास्क्रिप्ट काम नहीं करता है तो बैकअप होना अच्छा है, लेकिन सुविधाओं से बचने का कोई कारण नहीं है क्योंकि उन्हें जावास्क्रिप्ट की आवश्यकता होती है।
अनावश्यक कार्यक्षमता, अवधि से बचने के लिए यह एक अच्छा विचार है। JQuery जैसे फ्रेमवर्क तामझाम को जोड़ने के लिए अविश्वसनीय रूप से आसान बनाते हैं जो जोड़ने के लिए समझ में आता है, लेकिन कभी-कभी नहीं। उदाहरण के लिए:
क्या आपको वास्तव में चेतन करने की आवश्यकता है?
... और ...
क्या इस तरह के तुच्छ चयनकर्ता के लिए वास्तव में संपूर्ण DOM की आवश्यकता है? क्या आप इसे संदर्भ का उपयोग करते हुए सीमित कर सकते हैं, और क्या हमें इसकी आवश्यकता है?
मैं जेएस का उपयोग करने से नहीं बचूंगा, लेकिन मैं ध्यान रखता हूं कि अप्रिय न हो, जबकि धीमी मशीनों की तलाश है। वही सीएसएस 3 में हमें मिलने वाले कुछ फैंसी नए सामानों के साथ सच है - जैसे ड्रॉप शैडो ... यदि अत्यधिक उपयोग किया जाता है तो वे किसी को कम शक्ति वाली मशीन पर बना सकते हैं जो वास्तव में बुरा अनुभव है।
इसका अपवाद विभिन्न प्रकार के उपकरणों के लिए फ्रंट एंड कंट्रोल लिखना हो सकता है, जहां उन्हें जेएस अक्षम (शायद डेटा सेंटर प्रबंधन नेटवर्क पर कोई सख्त सुरक्षा नीति नहीं जेएस निर्धारित करता है) के साथ बिल्कुल काम करना चाहिए। तो उपरोक्त जो कुछ भी आपके पास है आवश्यकताओं के संदर्भ में लिया जाना चाहिए।
मेरा मानना है कि एक अपेक्षाकृत नया और युवा वेब डेवलपर (लगभग 4 साल) होने के नाते, मुझे इस पर बहुत शोध करना पड़ा क्योंकि जावास्क्रिप्ट हर जगह है।
मैं अपनी परियोजनाओं पर क्या करने की कोशिश करता हूं, यह सुनिश्चित करने के लिए कि साइट जावास्क्रिप्ट के बिना काम करती है, फिर जावास्क्रिप्ट जोड़ें जहां यह समझ में आता है (ग्राहक पक्ष सत्यापन, यूआई सुधार, आदि)। यह एक प्रकार की प्रगतिशील वृद्धि है और यह एसईओ, विकलांग जावास्क्रिप्ट और पुराने ब्राउज़र असंगतताओं का ध्यान रखता है।
एसओ पर भी यही सवाल पूछा गया है, लेकिन मैं अपने प्यार के लिए याद नहीं रख सकता।
जावास्क्रिप्ट का उपयोग कई मामलों में सीमित किया जा सकता है:
JS में सुविधाओं का एक विशाल समूह है, जिसे सर्वर-साइड कोड द्वारा प्रतिस्थापित नहीं किया जा सकता है। उपरोक्त के अलावा, मुझे नहीं लगता कि जेएस उपयोग को सीमित करने के लिए कोई उचित तर्क होगा।
" डेटाबेस संचालित वेबसाइटें " उत्तर की कुंजी है। वेबसाइट बनाने के दो तरीके हैं, और जावास्क्रिप्ट की मात्रा की अनुमति उस पर निर्भर करती है जिस पर आप उपयोग कर रहे हैं, वास्तव में। आप बना सकते हैं:
सामग्री केंद्रित वेबसाइटें । पहले मामले में, जादुई शब्द "प्रगतिशील वृद्धि" हैं; जावास्क्रिप्ट कार्यों को सीमित करें जो सादे HTTP के माध्यम से सामग्री तक क्लासिक पहुंच के साथ आपूर्ति की जा सकती है।
वेब अनुप्रयोग । एप्लिकेशन के लिए, आप इसके बजाय एक सॉफ़्टवेयर प्लेटफ़ॉर्म के रूप में वेब का उपयोग कर रहे हैं। उपलब्ध सॉफ़्टवेयर पर एप्लिकेशन कुछ मान्यताओं पर भरोसा करते हैं - आधुनिक ब्राउज़र, लोकप्रिय जावास्क्रिप्ट लाइब्रेरी के नवीनतम संस्करण, माउस के साथ डेस्कटॉप एक्सेस और / या मल्टी-टच के साथ टैबलेट।
यदि आप वास्तव में किसी एप्लिकेशन का निर्माण कर रहे हैं, तो न्यूनतम एक्सेस आवश्यकताएं ठीक हैं - आप उन्नत सुविधाओं को प्राप्त करने के लिए कुछ विशिष्ट प्लेटफॉर्म को लक्षित करते हैं जो अन्यथा निर्मित नहीं किए जा सकते। यह सिर्फ पायथन या जावा या .Net के लिए विकसित होने जैसा है। HTML5 जैसे buzzwords और आपको "मूर्ख कहीं भी चलाने" का वादा न करें; जब तक पूरा प्लेटफ़ॉर्म उन पर समर्थित हो, तब तक आप डिवाइस के बीच पोर्टेबल कोड रख सकते हैं। विकास के ढेर में कोई भी बदलाव, और सॉफ्टवेयर टूट जाएगा।
इस प्रकार भुगतान करने की कीमत यह है कि आप एक चलते लक्ष्य का पीछा कर रहे हैं, क्योंकि मंच के नए संस्करण जारी किए गए हैं; प्लेटफ़ॉर्म के विकसित होते ही आपको अपने ऐप को काम करने के लिए कैच-अप खेलना होगा। आपको मिलने वाला एकमात्र लाभ आपके ऐप के लिए एक अर्ध-सार्वभौमिक वितरण तंत्र है जो पैकेजों या एप्लिकेशन स्टोरों पर निर्भर नहीं करता है; लेकिन आप उस मुख्य विशेषता को खो देते हैं जो पिछले नेटवर्क वाले कंप्यूटर सिस्टम से वेब को अलग करती है।
सामग्री-केंद्रित वेबसाइटें एक अलग जानवर हैं; वे क्लासिक वर्ल्ड वाइड वेब की परंपरा में हैं। सामग्री को ग्राहक द्वारा शिथिल व्याख्या की जाती है, जो प्रस्तुति से पहले किसी भी वांछित परिवर्तन कर सकती है। साइट को विभिन्न प्लेटफार्मों के पारिस्थितिकी तंत्र द्वारा एक्सेस किए जाने की उम्मीद है जो वर्तमान मानकों का समर्थन कर सकते हैं या नहीं कर सकते हैं:
यदि आपको हमेशा जावास्क्रिप्ट की वर्तमान नस्ल की आवश्यकता होती है, तो आप उन्हें खो देंगे। इस संदर्भ में, टूटी हुई जावास्क्रिप्ट जो सामग्री तक पहुंचने से रोकती है, वह पाप है।
हर कोई कह रहा है कि "जावास्क्रिप्ट का उपयोग कम से कम किया जाना चाहिए" इस शैली की वकालत कर रहा है। कुछ जेएस को शामिल करना आपके लिए ठीक है , आपको बुरा लगता है, लेकिन सर्वर-साइड हासिल की जा सकने वाली सामग्री तक सभी पहुंच बेमानी होनी चाहिए:
इस दृष्टिकोण का लाभ कम परीक्षण और आवश्यक उन्नयन, और अधिक शेल्फ-लाइफ है। 20 साल पहले के पहले स्थिर वेबपेज अभी भी किसी भी वेब क्लाइंट में ब्राउज़ करने योग्य हैं, लेकिन पहले वेब एप्लिकेशन हमेशा के लिए टूट जाते हैं। यदि आपकी साइट पर कोई संग्रहणीय मूल्य है, तो आप वेब पर सामग्री वितरण प्रणाली के रूप में उपयोग करने से लंबे समय में लाभान्वित होंगे, न कि एप्लिकेशन प्लेटफ़ॉर्म पर।
मैं अपनी राज्य सरकार के लिए काम करता हूं, और परिणामस्वरूप मेरे अधिकांश विकास में डेटा-संचालित इंटरैक्टिव वेबसाइट शामिल हैं। ऐतिहासिक डेटा के खिलाफ प्रश्न, प्रस्तुतियाँ, जैसी चीजें। हम निम्नलिखित कारणों से अपनी जावास्क्रिप्ट को पूर्ण रूप से न्यूनतम रखते हैं:
1) फॉर्म इनपुट की वैधता हमेशा सर्वर साइड पर होनी चाहिए, क्लाइंट साइड पर कभी नहीं। यदि आप क्लाइंट की तरफ से अपने इनपुट्स को मान्य करने का प्रयास करते हैं, तो एक हैकर को आपके वेब पेज की एक स्थानीय कॉपी बनानी होगी और जावास्क्रिप्ट को फिर से लिखना होगा कि वह आपको क्या भेजना चाहता है (एसक्यूएल इंजेक्शन, आदि)। सर्वर पर आपके अनन्य नियंत्रण के तहत आपका सत्यापन होना चाहिए।
2) कई उपयोगकर्ता या तो जावास्क्रिप्ट बंद कर देते हैं या एक ब्राउज़र का उपयोग करते हैं जो इसे ठीक से लागू नहीं कर सकते हैं। सरकार होने के नाते, हमें सभी का समर्थन करना होगा, भले ही वे वास्तव में पुराने उपकरणों का उपयोग कर रहे हों। HTML हर जगह काम करता है; जावास्क्रिप्ट, इतना नहीं। अपने वेब पृष्ठों में जावास्क्रिप्ट का उपयोग न करके, आप उन्हें कुछ संसाधनों का उपयोग करके ग्राहक मशीन पर एक बहुत छोटा पदचिह्न देते हैं। यह उन लोगों की संख्या को अधिकतम करता है जो आपकी सामग्री तक पहुँच सकते हैं। उसी कारण से, आपको अपने सीएसएस के साथ बहुत अधिक पोषण नहीं मिलना चाहिए। इसे सरल रखें, इसे साफ रखें, और छोटी बूढ़ी महिलाओं को आपकी साइट को देखने दें भले ही उनका कंप्यूटर 1999 में खरीदा गया था (संयोग से, हम इस तरह के लोगों से तकनीकी सहायता कॉल प्राप्त करते हैं)।
3) जावास्क्रिप्ट, सर्वर साइड प्रोग्रामर के बजाय "वेब डेवलपर्स" के पक्ष में एक उपकरण होने के नाते, बहुत बदसूरत हो जाता है। और डिजाइनर (जो कि वेब डेवलपर्स आमतौर पर होते हैं, यदि आप इसके बारे में ईमानदार होना चाहते हैं) वेब पर यादृच्छिक स्थानों से "स्क्रिप्ट" डाउनलोड करने के साथ समस्या को नहीं देखते हैं। वे कहते हैं कि "पहिया को क्यों मजबूत करें?" और "यहाँ आविष्कार नहीं किया गया"। इसलिए अपने स्वयं के कोड लिखने के बजाय, वे अक्सर बाहर जाते हैं और किसी अन्य साइट से कुछ लेते हैं, यह सोचकर कि अगर यह इंटरनेट पर है तो यह उचित खेल है। इसके साथ दो समस्याएं हैं: ए) वे अनजाने में कुछ दुर्भावनापूर्ण जावास्क्रिप्ट पोस्ट कर सकते हैं जो आपको पकड़ने में थोड़ी देर लगते हैं, और बी) वे किसी के कॉपीराइट से बच सकते हैं, और आप पर मुकदमा कर सकते हैं। दोनों ही स्थितियों से बचना है।
सामान्य में, जावास्क्रिप्ट एक बुरा विचार है। किसी भी तरह का क्लाइंट साइड कोड एक बुरा विचार है। ग्राहक पक्ष में केवल मार्कअप भाषा और सीएसएस होना चाहिए; सर्वर-साइड को भारी उठाने की अनुमति दें।
निर्भर करता है।
हालांकि डेस्कटॉप उपयोगकर्ता एजेंटों से आपकी जावास्क्रिप्ट को सार्थक तरीके से समर्थन और चलाने की उम्मीद की जा सकती है, सभी उपयोगकर्ता एजेंट ग्राफ़िकल डेस्कटॉप ब्राउज़र नहीं हैं, और आपको यह तय करने की आवश्यकता है कि क्या आप उनके लिए पूरा करना चाहते हैं।
उदाहरणों में शामिल:
अंगूठे का मेरा नियम है कि अगर यह नियमित उपयोगकर्ताओं (इन-हाउस, समुदाय, उस तरह की) के लिए एक वेब एप्लिकेशन है, तो जावास्क्रिप्ट पर भरोसा करना ठीक है, लेकिन यदि आप सार्वजनिक रूप से सुलभ और खोज योग्य बनना चाहते हैं, तो कम से कम महत्वपूर्ण है कार्यक्षमता को जावास्क्रिप्ट के बिना निर्दोष रूप से काम करना चाहिए, और जब आपको अपरिभाषित व्यवहार को प्रदर्शित करने के बजाय, आपको इसे ज़रूरत पड़ने पर शान से विफल होना चाहिए।
पुराने जमाने का दृष्टिकोण पूरी तरह से पुराना है। उदाहरण के लिए, मैंने एक साइट पर मॉडरेटर के लिए एक अजाक्स-विलोपन किया है और स्पष्ट गति में वृद्धि के कारण वह बस खुश है।
बेशक डेवलपर जेएस और गैर-जेएस उपयोगकर्ताओं दोनों के लिए दो संस्करण कर सकता है, लेकिन अधिकांश मामलों में यह अत्यधिक महंगा है और वेबसाइट दर्शकों के 1-2% लायक नहीं है (यदि आप Google नहीं हैं, तो निश्चित रूप से)।
तो मेरा उत्तर होगा NO - जावास्क्रिप्ट कई उपयोगकर्ता-अनुभव के सवालों का जवाब है, मुझे इसका उपयोग क्यों नहीं करना चाहिए?
मेरे तजुर्बे से एक समय ऐसा आया जब कंपनियाँ नीति द्वारा जावास्क्रिप्ट को निष्क्रिय कर देती हैं। लेकिन यह समय बहुत दूर चला गया है। वर्तमान में मैंने बड़ी वैश्विक कंपनियों के लिए कुछ बड़े इंट्रानेट एप्लिकेशन और वेबप्लिकेशन्स बनाए हैं। सभी अनुप्रयोगों के लिए, जावास्क्रिप्ट और JQuery का उपयोग उन चीजों का हिस्सा था जो ग्राहक की अपेक्षा करते हैं।
ग्राहकों के लिए बिल्डिंग ऐप्स अब केवल गति और सुरक्षा नहीं है। ग्राहक प्रयोज्यता और AJAX प्रौद्योगिकी के उपयोग पर ध्यान केंद्रित करना चाहते हैं। जावास्क्रिप्ट के उपयोग के बिना यह इतना अच्छा काम नहीं करेगा। कुछ बहुत छोटे कार्यों के लिए हर समय पोस्टबॅक्स या गणना जैसे कुछ ऐसा होता है जो ज्यादातर कंपनियों के लिए एक विकल्प नहीं होता है।
जब हम बड़ी कंपनियों की वर्तमान स्थितियों के बारे में सोचते हैं तो एक और संकेतक होता है कि क्यों जावास्क्रिप्ट वर्तमान में होना चाहिए। सीएमएस सिस्टम को देखें जो वर्तमान में व्यवसाय में चल रहे हैं। उनमें से अधिकांश Microsoft SharePoint या Adobe CQ का उपयोग करते हैं, उनमें से कुछ Drupal या किसी अन्य और इसी तरह। यह सब सिस्टम जावास्क्रिप्ट पर निर्भर करता है। जावास्क्रिप्ट के बिना अधिकांश एप्लिकेशन काम नहीं करेंगे, जैसा कि उपयोगकर्ता को उम्मीद है।
समय के अनुसार, जावास्क्रिप्ट का उपयोग किया गया था और दुर्व्यवहार किया गया था, और स्क्रिप्ट कमजोरियों से भरे हुए थे (माना जाता था) और मैलवेयर का एक स्रोत था।
जेएस को अक्षम करके कई कॉर्पोरेट नेटवर्क ने जवाब दिया, एक नीति जो (सही या गलत) आज भी कई संगठनों में मौजूद है।
काफी बस, मेरा सुझाव है कि किसी भी साइट को संचालित करने के लिए जेएस पर भरोसा नहीं करना चाहिए
जैसा कि यहां अधिकांश उत्तर बताते हैं, का उपयोग javascript
करना कोई नुकसान नहीं है। यदि आप अपने कोडिंग और गंदे दिखने वाले सोर्स कोड को सहेजना चाहते हैं, तो प्रयास करेंcoffee-script
जो बहुत सारे प्रयास टाइपिंग को बचाएगा javascript
।