क्या आज्ञाकारी जावास्क्रिप्ट कभी ठीक है?


9

मैं सोच रहा था कि यदि किसी वेबसाइट के सभी उपयोगकर्ताओं के लिए जावास्क्रिप्ट सक्षम होना आवश्यक है, तो क्या आपत्तिजनक जावास्क्रिप्ट का उपयोग करना ठीक है?

मैं सभी प्रगतिशील उन्नति के लिए हूं, लेकिन क्या बात है जब एक उन्नत वेब एप्लिकेशन उपयोगकर्ताओं को दरवाजे पर बाउंस करता है यदि उनके पास एक पुराना ब्राउज़र या जावास्क्रिप्ट अक्षम है?

हमारे पास बहुत ही पतले लक्ष्य दर्शक हैं, और हम अपने लक्षित दर्शकों को बता सकते हैं कि उनके पास कौन से ब्राउज़र और प्लगइन्स / कार्यक्षमता हैं। तो मेरा सवाल यह है कि क्या इस मामले में जेएस और एचटीएमएल ठीक है? जैसे ऑनक्लिक विशेषताओं का उपयोग करना।


1
"यदि किसी वेबसाइट के सभी उपयोगकर्ताओं को जावास्क्रिप्ट सक्षम होना आवश्यक है ... यदि उनके पास ... जावास्क्रिप्ट अक्षम है?" <- यह एक विरोधाभास है, और मुझे यकीन नहीं है कि इसे अनसुलझे के साथ एक उपयोगी उत्तर कैसे दिया जाए।
हेजमैज

3
ध्यान दें कि आपके लक्षित दर्शकों और बाजार पर निर्भर करते हुए, सुलभता कानून हो सकते हैं, जिसके लिए आपकी वेबसाइट को अक्षम लोगों सहित सभी उपयोगकर्ताओं के लिए सुलभ होना चाहिए। जेएस के लिए व्यवहार में इसका क्या मतलब है मुझे नहीं पता। AFAIK (IINAL) जहां मैं हूं, हमारे पास इस तरह के कानून हैं, लेकिन अभी तक विवरणों को हल करने के लिए परीक्षण मामले नहीं आए हैं।
जेम्स

16
"आज्ञाकारी" जावास्क्रिप्ट से आपका क्या मतलब है? मैं शब्द से परिचित नहीं हूँ।
मैके 23

2
तो आपका प्रश्न मूल रूप से है: क्या भद्दा कोड लिखना कभी ठीक है? हाँ, यह प्रोटोटाइप और परियोजनाओं के लिए है जो पर्याप्त रूप से छोटे हैं और एक बार समाप्त होने के बाद रखरखाव / उन्नयन की आवश्यकता नहीं है। अन्यथा आप आधे साल बाद खुद का सामना करेंगे, क्योंकि यह पता लगाने में आपको एक घंटे का समय लगता है कि अगर आप इसे लगाते समय कुछ सेकंड और निवेश कर देते तो क्या होता।
back2dos

3
मैंने सोचा था कि यह सवाल पूछने के लिए जा रहा था कि किसी के ब्राउज़र विंडो का आकार बदलने या पॉपअप के टन करने के लिए यह ठीक है।
whatsisname

जवाबों:


17

यह एक डिजाइन निर्णय के बजाय एक व्यावसायिक निर्णय है।

वेबसाइट का एक संस्करण प्रदान करने की लागत है जो जावास्क्रिप्ट (या फ्लैश, या सिल्वरलाइट) के बिना काम करता है। व्यापार तय करने के लिए राजस्व / आगंतुकों में नुकसान यह नहीं लायक या है।

इसलिए यदि इस संस्करण को लिखने के लिए $ 10,000 का खर्च आता है (संख्या बड़ी तरफ हो सकती है, लेकिन यह केवल इस उदाहरण के लिए है) तो क्या साइट के जीवनकाल में व्यापार फिर से शुरू हो जाएगा? यदि नहीं, तो उस संस्करण को प्रदान न करें।

हालांकि, अगर इस संस्करण को लिखने में केवल $ 100 का खर्च आता है तो यह सुंदर गिरावट प्रदान करने के लिए समझ में आता है।

केवल जावास्क्रिप्ट सक्षम ब्राउज़रों को लक्षित करने के लिए व्यापार निर्णय लेने के बाद और उम्मीद करें कि आपके उपयोगकर्ता जावास्क्रिप्ट सक्षम होंगे तो यह आपके एप्लिकेशन को उन सुविधाओं का लाभ उठाने के लिए सही अर्थ देता है जो अब आपके पास उपलब्ध हैं। केवल एक चीज जो आपको करने की आवश्यकता है वह है (जैसे स्टैक ओवरफ्लो खुद करता है) एक चेतावनी दी जाती है कि साइट सही ढंग से काम नहीं करेगी यदि उपयोगकर्ता इसे सक्षम नहीं करता है।


2
मुझे लगता है कि आप मुझे गलत समझ रहे हैं।
पेटा

5
आपको कृपया हमें बताएं कि गलतफहमी से बचने के लिए WTF "obtrusive JS" का मतलब है। आपको पहले ही ऐसा करने के लिए कहा गया है (7 बार अपवित्र)!
maaartinus

1
मैंने अतीत में कुछ शालीनता से अपमानजनक पृष्ठों का निर्माण किया है और html और जावास्क्रिप्ट को बहुत कम पारदर्शी पाया है, यदि आप अभी भी जेएस सक्षम आगंतुकों को सर्वश्रेष्ठ उपयोगकर्ता अनुभव प्रदान करना चाहते हैं। पेज ए लॉट बनाने के लिए कठिन थे और मेरा मानना ​​है कि पेज को बनाए रखने वाले व्यक्ति को आपके कोड के बाद काफी मुश्किलें होंगी। तो निश्चित रूप से एक दीर्घकालिक रख-रखाव की लागत को ध्यान में रखना है जब आपकी साइट को सुंदर बनाने के लिए लागत का आकलन करना है। मुझे यह बहुत ही आकर्षक लगा कि जेएस सक्षम यूएक्स पर समझौता करने के लिए ..
थॉमस स्टॉक

1
@aaartinus, obtrusive javascript, विनीत javascript en.wikipedia.org/wiki/Unobtrusive_JavaScript
पेटा

1
ठीक है, इसलिए मैं केवल यह कह सकता हूं ... html + js एक प्लेग है (अजीब मानकों को अनदेखा करते हुए टूटे हुए कार्यान्वयन) और मैं थॉमस स्टॉक द्वारा लिखे गए प्रयास को कम कर दूंगा। चुने हुए ब्राउज़र में इसे सही तरीके से काम करने की कोशिश करें (और IE6: D का चयन न करें) a और दूसरों में सहने योग्य हो। सभी समस्याओं के आसपास काम करने के बजाय अपना समय कार्यक्षमता पर खर्च करें।
Maaartinus

20

कुछ और किसी ने अभी तक नहीं लाया है ...

99% वेब साइट्स एक विशेष आगंतुक का स्वागत करती हैं, जिसमें कोई भी जावास्क्रिप्ट से कम नहीं है। उस विज़िटर का एक नाम है: Googlebot

एक बड़ा कारण हर किसी को अंधे आगंतुकों की देखभाल करना चाहिए, साथ ही…

यदि आप बहुत कम लोगों में से एक हैं जो खोज इंजन ट्रैफ़िक के बारे में बिल्कुल भी परवाह नहीं करते हैं, तो ठीक है, यह आपका विशेषाधिकार है - लेकिन यह निश्चित रूप से एक सामान्य नियम के लिए नहीं है।


4
वास्तव में। हमने अपनी एक साइट को नेत्रहीन के लिए और अधिक सुलभ बनाने के लिए सुधार किया और एक (अनपेक्षित) परिणाम के रूप में हमें Google से प्राप्त ट्रैफ़िक को एक वर्ष में लगभग 10 के कारक से गुणा किया गया।
क्रिश

1
हाँ, लेकिन वेबसाइट जनता के लिए नहीं है। इसलिए खोज रैंकिंग लागू नहीं होती है।
पेटा

3
@Petah: आप बताते हुए माना है स्पष्ट रूप से और संक्षेप क्या अपने सटीक आवश्यकताओं, स्थितियों और प्रतिबंधों में हैं प्रश्न के बजाय टिप्पणी में जानकारी के छोटे स्निपेट peppering यहाँ और वहाँ?
JUST MY सही जनमत

1
तुम अब और सही नहीं हो। काफी समय के बाद से, Googlebot ने जावास्क्रिप्ट को अच्छी तरह से चलाया (कोई आश्चर्य की बात नहीं, यह देखते हुए कि Google V8 इंजन और कोणीय दोनों पर काम करता है)।
माॅर्टिनस

8

विशिष्ट आंतरिक वातावरण के लिए चीजें लिखने वाले लोग एक बड़ा कारण है कि IE6 अभी भी आसपास है।

इसके बारे में सोचो


4

यदि आप एक जेएस केवल साइट (शायद इस मामले में 'आवेदन' एक बेहतर शब्द है) जेएस की तथाकथित 'विनीतता' सभी के मामले में उतनी मायने नहीं रखती है, जब आपको गैर-कृपा से नीचा दिखाने की आवश्यकता होती है जेएस संस्करण।

हालाँकि: एक विनीत तरीके से लिखा गया जावास्क्रिप्ट लिखने के लिए सामान्य रूप से आसान है (और कम से कम मुझे यह इस तरह लगता है) और बनाए रखना। HTML लेआउट में परिवर्तन शुरू करना आसान है जो JS को नहीं तोड़ता है, और HTML को तोड़ने की चिंता किए बिना JS में परिवर्तन करता है।


4

यदि आप एक वेब साइट का निर्माण कर रहे हैं तो मैं जावास्क्रिप्ट को विनीत रखूंगा। हालाँकि, यदि आप किसी एप्लिकेशन (जैसे Google डॉक्स) का निर्माण कर रहे हैं, तो जावास्क्रिप्ट काफी आपत्तिजनक होगा।

जावास्क्रिप्ट और HTML5 अनुप्रयोगों के निर्माण के लिए बहुत अच्छा है यदि आपकी आवश्यकता है, लेकिन यह वास्तव में एक व्यावसायिक विकल्प है।


हाँ यह एक वेबसाइट की तुलना में Google डॉक्स की तरह अधिक है। और हम HTML5 का भारी उपयोग करते हैं।
पेटा

सही होने पर मुझे सही करें, लेकिन मुझे लगता है कि आप अभी भी कोड में गड़बड़ी पैदा किए बिना विनीत जावास्क्रिप्ट में अधिकांश अवधारणाओं का उपयोग कर सकते हैं? यही वह अवधारणा है जो मेरे लिए सबसे ज्यादा शोर मचाती है। शायद आप विनीत जावास्क्रिप्ट के कुछ अन्य पहलुओं का उल्लेख कर रहे हैं, जिन्हें आपको HTML5 का उपयोग करके बचने की आवश्यकता होगी, जैसे कि गैर-जावास्क्रिप्ट उपयोगकर्ताओं के साथ पश्चगामी संगतता? आपको चुनना होगा और चुनना होगा कि आपके और प्रोजेक्ट के लिए सबसे अच्छा क्या है, जब तक आप समझदारी से कारणों को सही ठहरा सकते हैं और जोखिम का विश्लेषण कर सकते हैं, तो मुझे लगता है कि यह सब अच्छा है :) +1
jmort253

मैं किस बारे में बात कर रहा हूं कि जावास्क्रिप्ट को बंद कर दिया जाए तो साइट कैसे काम करेगी। कुछ समय ऐसे हैं जहाँ यह पूरी तरह कार्यात्मक होगा (यदि शायद उतना अच्छा नहीं है) और अन्य जहां यह पूरी तरह से विफल हो जाएगा। मैं पुराने ब्राउज़रों के बारे में चिंतित नहीं हूं जो जावास्क्रिप्ट (नेटस्केप 1) का समर्थन नहीं करते हैं। बेशक किसी भी मामले में बीएडी जावास्क्रिप्ट लिखने के लिए कोई कारण नहीं है
ज़ाचरी के

2

अधिकांश उपयोगकर्ता (मेरे उपयोगकर्ता, मुझे आपके उपयोगकर्ताओं के बारे में जानकारी नहीं है) में जावास्क्रिप्ट उपलब्ध और सक्षम है। आइए उन उपयोगकर्ताओं को एक शानदार उपयोगकर्ता अनुभव प्रदान करते हैं। हालांकि, आपको अभी भी अपनी साइट का एक संस्करण प्रदान करना होगा जो जावास्क्रिप्ट के बिना काम करता है। मुझे पता है कि 2 संस्करणों का निर्माण करना एक परेशानी है, लेकिन यह वेब विकास में जिस तरह से जाता है। (वास्तव में आपको कई संस्करण बनाने पड़ सकते हैं, तीसरा आपकी साइट का मोबाइल संस्करण हो सकता है)।

आप जो नहीं करना चाहते हैं वह कम से कम सामान्य भाजक के लिए डिज़ाइन है: "ठीक है, कुछ उपयोगकर्ता हैं, जिनके पास जावास्क्रिप्ट अक्षम है, इसलिए हम उनके लिए अच्छी तरह से काम करने के लिए हमारी साइट को डिज़ाइन करने जा रहे हैं - कोई जावास्क्रिप्ट नहीं, सब कुछ के लिए सर्वर को हिट करें । " यह आपके उन अधिकांश उपयोगकर्ताओं को दंडित करता है जिनके पास जावास्क्रिप्ट है।


जो मैं कह रहा हूं कि कोई भी उपयोगकर्ता जावास्क्रिप्ट अक्षम नहीं है। यदि वे करते हैं, तो वे साइट तक नहीं पहुंच सकते।
पेटा

@Petah, ठीक है, यह बहुत अच्छा नहीं है। आप जावास्क्रिप्ट के बिना उपयोगकर्ताओं को उछाल नहीं करना चाहते हैं। तो क्या आप तब पूछ रहे हैं, जब से मैं बिना जावास्क्रिप्ट के उपयोगकर्ताओं को मार रहा हूं, क्या मैं अपने HTML में उसी फ़ाइल में JS डाल सकता हूं?
मार्की

हमारे पास बहुत ही पतले लक्ष्य वाले दर्शक हैं, और हम अपने लक्षित दर्शकों को बता सकते हैं कि उनके पास कौन से ब्राउज़र और प्लगइन्स / कार्यक्षमता हैं। तो आप मेरा सवाल है, उस मामले में जेएस और HTML को ठीक से मिला रहा है। जैसे ऑनक्लिक विशेषताओं का उपयोग करना।
पेटा

4
@Petah, JS और HTML को मिलाने से बचने के अन्य कारण हैं। यह एक ही कारण है कि हम शैलियों और HTML को मिलाने से बचते हैं - चिंताओं को अलग करना। यदि आपकी शैली आपकी संरचना के साथ मिश्रित है, जो आपके व्यवहार के साथ मिश्रित है, तो आपको बनाए रखना बहुत मुश्किल है। थोड़ी देर के लिए इसे "विनीत" तरीके से करने के बाद, आप देखेंगे कि आपकी फाइलें कितनी सुंदर हैं, और बदलाव करना कितना आसान है।
मार्की

2
@Petah, क्या आपके पास आपकी पूरी साइट के लिए एक बहुत बड़ी JS फाइल है, और सब कुछ वहाँ चला जाता है? मेरे पास प्रति पृष्ठ लगभग एक जेएस फ़ाइल है, और यह मेरे लिए अच्छी तरह से काम करती है। सचमुच "आम" सामान वह सब है जो साझा जेएस फ़ाइल में जाता है।
मार्की

2

आपने ऑनलिक विशेषताओं का उपयोग करते हुए उल्लेख किया है। क्या आप पृष्ठ नेविगेशन के लिए जावास्क्रिप्ट ईवेंट हैंडलर का उपयोग करने की योजना बना रहे हैं?

मैं एक ही कारण से इसके खिलाफ सिफारिश करूंगा: यह मध्य क्लिक को तोड़ता है

नियमित लिंक पर क्लिक करने के लिए, मान लिया गया है कि जावास्क्रिप्ट सक्षम है, ये कार्यात्मक रूप से समतुल्य होंगे:

<a href="#" onclick="window.location = 'myPage.htm';">Click here</a>
<a href="myPage.htm">Click here</a>

यदि आप पहले उदाहरण पर क्लिक करने की कोशिश करते हैं, तो आपको myPage.htm के बजाय एक खाली पृष्ठ मिलेगा।

इस उदाहरण के अलावा, मुझे लगता है कि यदि आपके लिए यह व्यवसायिक समझ में आता है तो आपत्तिजनक जावास्क्रिप्ट का उपयोग करना ठीक है। इनलाइन जावास्क्रिप्ट लिखने में कम समय लगता है (लेकिन आवश्यक रूप से बनाए नहीं), और प्रगतिशील वृद्धि का नुकसान आपकी स्थिति में महत्वपूर्ण नहीं हो सकता है।


इस मामले में इसके नेविगेशन के लिए नहीं, यह 'रिफ्रेश', 'डिलीट', 'क्रिएट', आदि जैसे बटन के लिए है
पेटा

उस मामले में, मेरा सुझाव है कि यह व्यक्तिगत शैली है। मुझे शुरू करने के लिए ऑब्स्ट्रक्टिव तरीका जल्दी / आसान लगता है, लेकिन क्लीनर और बनाए रखने के लिए 'सही' तरीका है। सही तरीके से करने में निश्चित रूप से एक फजी-फील-गुड फैक्टर है।
गाविनह

+1 - यदि यह विनीत है तो शुरू से ही कोड को साफ रखना आसान है। मुझे लगता है कि अगर मैं शुरुआत में बहुत गड़बड़ हो गया, तो बाद में समस्याओं को ठीक करने की कोशिश करना बहुत कठिन हो सकता है। मैं अभिभूत हो गया। मैं एक नौकरी के रूप में अच्छा करना पसंद करता हूं, ताकि जब मैं वापस जाऊं, तो यह रिफ्लेक्टर करने के लिए इतना बुरा न हो।
jmort253

2

निकला हुआ जावास्क्रिप्ट था 10 साल पहले ठीक है। यदि आप एक शौकिया हैं, या यदि आप एक फेंक-दूर प्रोटोटाइप का निर्माण कर रहे हैं, तो यह ठीक है, या यदि कुछ परिस्थिति है जो इसकी आवश्यकता है, जैसे कि विरासत कोड या डेटा-संचालित कोड पर निर्भरता और यह सिर्फ सादा लागत तरीका होगा बहुत ठीक करने के लिए अल

यदि आप जमीन से कुछ बना रहे हैं, तो मानकों का पालन करें, अच्छा, स्वच्छ, बनाए रखने योग्य कोड लिखें। कुछ ऐसा लिखें जिस पर आपको गर्व हो और जो अब आपको एक साल से बीमार नहीं करेगा जब कुछ गरीब schmuck आपसे मदद मांगते हैं क्योंकि वे आपके द्वारा किए गए hackjob को नहीं समझते हैं। कुछ ऐसा लिखें जो यह सुनिश्चित करे कि आपके वेब डिज़ाइनर गन्दा HTML और जावास्क्रिप्ट के माध्यम से अपना रास्ता खोदने के बिना आसानी से CSS को स्वैप कर सकते हैं।

एप्लिकेशन का निर्माण करें, ताकि इसमें विकसित होने के लिए जगह हो, ताकि कोई भी डेवलपर इसमें आ सके और इसे बनाए रख सके। अब निवेश किया गया समय भविष्य में समय बचाएगा, यदि आपका समय नहीं है, तो किसी और का।

सुनिश्चित करें कि जावास्क्रिप्ट को दूसरे संदर्भ में पुन: उपयोग किया जा सकता है। सुनिश्चित करें कि एक पूर्ण वेबसाइट रीडिज़ाइन सिर्फ एक हो सकती है, एक रीडिज़ाइन, और कुछ का पूर्ण पुनर्निर्माण नहीं जो कि पहले से मौजूद है लेकिन सिर्फ इतना कठिन नहीं था।

कल्पना कीजिए कि एक नया स्वरूप देने के लिए मूल रूप से इसे बनाने में कितना समय लगाना होगा, यह कितना शर्मनाक होगा

मुझे अनुभव से विश्वास करो, विनीत जावास्क्रिप्ट आपको कुछ महंगी गलतियाँ करने से रोकेगा।


2

ठीक है, बस मुझे मेरे द्वारा किए गए सभी नेक्रो पर क्रिप्ट कीपर कहें, लेकिन मुझे कभी नहीं लगा कि इसका सही मूल्य ठीक से नहीं समझा गया है। ऐतिहासिक रूप से, यह दावा किया गया है कि "विनीत जावास्क्रिप्ट" या, अपने जेएस को एचटीएमएल से बाहर रखना इनलाइन एचटीएमएल ईवेंट हैंडलर विशेषताओं और स्क्रिप्ट टैग के माध्यम से जो किसी फ़ाइल को जितना संभव हो उतना लिंक नहीं करता है: का एक बड़ा महत्वपूर्ण तत्व है:

  • पहुंच की चिंता
  • एसईओ
  • और प्रगतिशील वृद्धि

निहित है! (अच्छा, अब वे होंगे)

इस मामले की सच्चाई यह है कि, आप तकनीकी रूप से अप्रिय जावास्क्रिप्ट कर सकते हैं और अभी भी उपरोक्त तीन वस्तुओं को बंद कर सकते हैं। जब तक आप 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, वहाँ अभी भी एक जीत है और यह ज्यादातर आपके लिए है, डेवलपर इस सामान को लिखता है और बनाए रखता है। और वास्तव में, यह जीत हमेशा सबसे कम अंक वाली होनी चाहिए थी, लेकिन कभी किसी कारण से नहीं हुई क्योंकि यह अंततः आपको लाभ देती है और आसान ट्वीक / संशोधित / डिबग होने के गुण के माध्यम से खुश दुर्घटना से उत्पाद भी।

क्या यह कभी ठीक है?

खैर, मुझे लगता है। एक प्रतियोगिता या कुछ के लिए एक डिस्पोजेबल थ्रो दूर अनुप्रयोग में हो सकता है। लेकिन मैं इसे अभी भी करूंगा क्योंकि मैं इसकी आदत में हूं और वास्तव में ऐसा करना कठिन नहीं है।


1

यदि आपको पता है कि आपका लक्ष्य ऑपरेटिंग वातावरण जावास्क्रिप्ट और फ्रेमवर्क जैसे कि jQuery एक वास्तविक देवता हो सकता है। उदाहरण के लिए एक एंटरप्राइज़ वातावरण में जहां एसओई के पास जावास्क्रिप्ट और आईई 8 है, जो अपने क्लाइंट क्लाइंट ब्राउज़र को लिखने के लिए सुरक्षित से अधिक है।


1

सुशोभित गिरावट को आसान बनाना कई कारकों में से एक है जो विनीत जावास्क्रिप्ट को एक आकर्षक विकल्प बनाता है, और मेरी राय में, यह सबसे महत्वपूर्ण नहीं है।

व्यक्तिगत अनुभव से, मैं कहूंगा कि यदि आप एक बड़ी परियोजना के बारे में बात कर रहे हैं, तो एक जो कि समय के साथ बहुत अधिक विकसित हो जाएगी, फिर विनीत शैली का उपयोग करने से एप्लिकेशन को बनाए रखने, डिबग करने और रिफैक्ट करने में आसानी होगी। यही सबसे बड़ा कारण है कि हम हमेशा उन साइटों पर भी विनीत शैली का उपयोग करते हैं, जो सभी आगंतुकों के लिए जावास्क्रिप्ट को सक्षम करने की मांग करती हैं।


इस मणि के लिए +1 शांग के लिए "सुशोभित गिरावट को आसान बनाना कई कारकों में से एक है जो विनीत जावास्क्रिप्ट को एक आकर्षक विकल्प बनाता है, और मेरी राय में, यह सबसे महत्वपूर्ण नहीं है।" जावास्क्रिप्ट का कार्यान्वयन कई बार एक दोहरी धार वाली तलवार हो सकता है, मैंने व्यक्तिगत रूप से पाया है
MattyD

1

सामान्य तौर पर, यदि आप एक पारंपरिक "वेब साइट" विकसित कर रहे हैं, जो कि गुमनाम रूप से उपलब्ध है, खोज इंजन द्वारा अनुक्रमित है, और जहां विज्ञापनों द्वारा राजस्व उत्पन्न होता है, तो आपको सुशोभित गिरावट प्रदान करनी चाहिए। यह विचार यह है कि इस तरह की साइट रहती है और पहुंच से मर जाती है इसलिए पहुंच को सीमित करने का मतलब है कि पेज व्यू का एक टन खोना और इस तरह विज्ञापन राजस्व।

एक प्रतिबंधित पहुंच, आम तौर पर गैर-अनुक्रमित और गैर-विज्ञापन-राजस्व-आधारित "साइट" (वेब ​​एप्लिकेशन) बहुत अधिक लचीली हो सकती है। यह समर्थन की चौड़ाई, सुविधाओं की गहराई और विकास लागत के बीच एक निर्णय पर आता है। इसे एक पारंपरिक अनुप्रयोग विकसित करने की तरह सोचें: आप किस प्लेटफॉर्म का समर्थन करते हैं और न्यूनतम विनिर्देश क्या हैं? यदि आप सिर्फ एक मंच और सीमित विनिर्देशों को लक्षित करते हैं, तो आप खोए हुए संभावित बाजार हिस्सेदारी की कीमत पर कम विकास और समर्थन लागत के साथ एक बेहतर उत्पाद प्रदान करने पर ध्यान केंद्रित कर सकते हैं।

उदाहरण: Google खोज एक वेब साइट है। Google डॉक्स एक वेब एप्लिकेशन है। Google खोज कोई तामझाम नहीं है और यह जावास्क्रिप्ट, सीएसएस, और / या छवियों, आदि के बिना समान रूप से कार्य कर सकता है ... - यह पाठ मोड ब्राउज़रों में काम करता है और साथ ही साथ यह नवीनतम GUI ब्राउज़रों में भी काम करता है। Google डॉक्स केवल जावास्क्रिप्ट अक्षम के साथ काम नहीं करता है और यह इनायत से नीचा भी नहीं करता है - जावास्क्रिप्ट को सक्षम करने के लिए चेतावनी भी नहीं।


1

मैं सीएसएस में अधिकांश लेआउट और नेविगेशन को संभालना पसंद करता हूं। हाँ, लिंक्स इसका समर्थन नहीं कर सकता है, लेकिन सभी पूर्ण ब्राउज़रों को पता है कि मैं इसे बंद नहीं कर सकता। फिर जावास्क्रिप्ट का उपयोग अधिक आकर्षक लेकिन आवश्यक चीजों के लिए नहीं किया जा सकता है। मुझे इस उद्देश्य के लिए रूबी ऑन रेल्स भी पसंद है। जब तक आपको डायनामिक पेज अपडेट की आवश्यकता नहीं होगी, तब तक यह बहुत कुछ कर सकता है कि जावास्क्रिप्ट को सर्वर साइड की आवश्यकता होगी।

प्रश्न के उत्तर के लिए अधिक लक्षित: मुझे जावास्क्रिप्ट की आवश्यकता नहीं है, लेकिन एक व्यावसायिक मामला है जहां यह आवश्यक है जैसा कि क्रिसएफ ने उल्लेख किया है।


0

जावास्क्रिप्ट डिफेक्टो मानक है जब यह किसी भी प्रकार की गतिशील सामग्री वितरित क्लाइंट साइड की ओर आता है, यदि उनके पास जेएस नहीं है तो संभवतः उनके पास चांदी की रोशनी नहीं होगी।

फिर आपको अपने बाजार / दर्शकों के बारे में सोचना होगा कि क्या आप प्रोग्रामर हैं ।stackexchcange या bbc.co.uk/news? बहुत अलग दर्शकों।


0

चूंकि आप वेब पर देख सकते हैं और कई साइटों पर "ऑब्सट्रक्टिव जावास्क्रिप्ट" देख सकते हैं, इसलिए आपके मूल प्रश्न का उत्तर दिया जाता है, हाँ, यह ठीक है, और कई लोकप्रिय साइटें, यहां तक ​​कि Google भी करती हैं।

हालांकि, अधिक महत्वपूर्ण, कार्यक्षमता का सुंदर गिरावट है, भले ही आप जोर देते हैं कि आपके उपयोगकर्ताओं को जावास्क्रिप्ट सक्षम होना चाहिए, आपको गैर-जेएस उपयोगकर्ताओं के लिए एक सभ्य स्तर का अनुभव प्रदान करना होगा, या वे स्वेच्छा से वापस नहीं आएंगे।


उन्हें पहले स्थान पर पहले पृष्ठ से पहले कभी भी अनुमति नहीं दी जाएगी।
पेटा
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.