ब्राउज़रों ने jQuery क्यों स्थापित नहीं किया है?


19

मैं अपनी कई वेबसाइटों पर jQuery का उपयोग कर रहा हूं और यद्यपि मैं इसे परोसने के लिए एक CDN का उपयोग करता हूं, यह सिर्फ आगंतुक को किसी भी समय jQuery डाउनलोड करने के लिए समझ में नहीं आता है। jQuery दुनिया का सबसे व्यापक रूप से इस्तेमाल किया जाने वाला जावास्क्रिप्ट ढांचा होना चाहिए - क्या यह अधिक समझ में नहीं आएगा अगर ब्राउज़र ने इसे डिफ़ॉल्ट रूप से स्थापित किया है?

इस तरह से दिन में लाखों बार jQuery के डाउनलोड को रोका जा सकता है। या तो लोगों की अपनी वेबसाइटों से या CDN से।

यदि वास्तव में किसी प्रकार की आवश्यकता हो तो किसी प्रकार का विवरण दिया जा सकता है:

 <!--[if jQuery gt 11]>

क्या ऐसा कुछ मौजूद है जो मुझे CDN की यात्रा करने वाले उपयोगकर्ताओं को रोकने में मदद करेगा यदि उनके पास पहले से ही किसी अन्य साइट से कैश में jQuery है?


3
सवाल यह है - किसी उपयोगकर्ता को साइटों या सीडीएन से नए डाउनलोड करने की आवश्यकता क्यों है जो उसके पास पहले से है? jQuery को कई स्थानों और कई संस्करणों में परोसा जाता है। मैं पृष्ठ गति के बारे में चिंतित हूं और उपयोगकर्ता विशेष रूप से मोबाइल बैंडविड्थ के बारे में चिंतित हैं। यदि लाइब्रेरी के लिए सोने का मानक है - तो इसका उपयोग क्यों नहीं किया जाता है? ऐसे अन्य उदाहरण हैं जो सुनिश्चित हैं और मैं उनका भी स्वागत करूंगा - जब तक कि उनके लिए एक मानक पर सहमति नहीं है (जैसे कि संस्करण संख्या)।
user1914292

27
क्यों jQuery लेकिन नहीं कोणीय, MooTools, अंडरस्कोर, ...? और प्रत्येक के कौन से संस्करण? क्या ब्राउज़र में हर जावास्क्रिप्ट लाइब्रेरी की प्रतियां होनी चाहिए?
user253751

15
"क्षमा करें, जब तक आप अपने ब्राउज़र के 0.1 उच्च संस्करण में अपग्रेड नहीं करते, तब तक आप मेरी वेबसाइट का उपयोग नहीं कर सकते"
VLAZ


4
उसके लिए कैशिंग बनाया गया है। अन्यथा, संस्करण हैंडलिंग मूल रूप से असंभव होगा
njzk2

जवाबों:


55

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

jQuery एक लोकप्रिय पुस्तकालय है, जैसा कि आप कहते हैं, लेकिन कुछ कारणों से ब्राउज़र के साथ बंडल करने की संभावना नहीं है:

  1. jQuery अपेक्षाकृत छोटा है (पुस्तकालयों की तुलना में जो कभी-कभी ब्राउज़र में बंडल होते हैं, जैसे Flash)। औसत साइट पर सबसे बड़ा प्रदर्शन बाधाओं jQuery डाउनलोड करने के कारण होने की संभावना नहीं है।
  2. जावास्क्रिप्ट / ECMAScript में सुधार का मतलब है कि डेवलपर्स को jQuery पर निर्भर होने की आवश्यकता नहीं है। ( Youmightnotneedjquery.com देखें )
  3. कई अन्य लोकप्रिय जावास्क्रिप्ट लाइब्रेरी हैं। ब्राउज़रों को जावास्क्रिप्ट कोड के लिए रिपॉजिटरी के रूप में डिज़ाइन नहीं किया गया है। पटकथा लोकप्रियता पर नज़र रखना, कम लोकप्रिय पुस्तकालयों को छोड़ना, और सब कुछ अद्यतित रखना व्यक्तिगत साइटों के वेब डेवलपर्स के लिए सबसे अच्छा हो सकता है।

मैं इसे समझता हूं, लेकिन मैं अब CDN के रूप में code.jquery.com का उपयोग कर रहा हूं। हालाँकि, जब कोई अन्य वेबसाइट googleapis या cdjns का उपयोग करती है तो ब्राउज़र उस दूसरे CDN से jQuery को डाउनलोड करेगा। यह सिर्फ समझ में नहीं आता है और सभी जगह बहुत समय / बैंडविड्थ खर्च करता है। यदि आप इस बात को जोड़ते हैं कि ज्यादातर मामलों में लोग jQuery1.7 + जैसी कोई चीज पसंद करेंगे तो यह और भी खराब हो जाएगी। मैं ब्राउज़रों के बारे में आपकी बात समझता हूं कि वे रिपॉजिटरी नहीं हैं, लेकिन क्या हम कुछ तरह के 'कई स्रोतों से कैश' नियम के साथ नहीं आ पाएंगे?
user1914292 8

24
@ user1914292 यह केवल तभी उपयोगी होगा जब सभी ब्राउज़रों के अस्तित्व में कभी jQuery के सभी संस्करण थे, और अगर यह jQuery के किसी भी ज्ञात स्रोत के लिए किसी भी अनुरोध को रोक देता है, तो इसे कैश्ड संस्करण के साथ बदल दिया जाएगा। यदि थोड़ा सा भी अंतर है, तो यह बग का कारण बन सकता है जो डिबग करना असंभव है। यह इस तथ्य से और बढ़ गया है कि वेब कैशिंग काम करता है , और दशकों तक काम किया है। आपका ब्राउज़र केवल एक चीज नहीं है जो उन jQuery के अनुरोधों को कैश करता है - आपके ब्राउज़र के रास्ते में कई राउटर भी ऐसा ही करते हैं। समस्या का समाधान बहुत पहले हो चुका है, जब बैंडविड्थ ने बात
बनाई

4) क्या होगा यदि किसी विशेष साइट पर jquery कोड एक फ़ंक्शन पर निर्भर करता है जिसे मौलिक रूप से हाल के अपडेट में बदल दिया गया है और अब कोड क्या करने की उम्मीद करता है?
शादुर

1
@ नहीं, यह एक ट्रैकिंग तंत्र के रूप में काम नहीं करता है क्योंकि 99% समय आपके ब्राउज़र के कैश से अनुरोध प्राप्त होता है।
20

1
@BenSteward हाँ, अपने ब्राउज़र के dev टूल का उपयोग करें और नेटवर्क पैनल की जाँच करें । उदाहरण के लिए, क्रोम "डिस्क कैश" या "मेमोरी कैश" कॉलम में कैश्ड संसाधनों को दिखाएगा और "स्टेटस" कॉलम में एक भूतिया मान (जब तक आपके पास "अक्षम कैश नहीं है" (जबकि DevTools) खुला है) "देव उपकरण सेटिंग्स में सक्रिय)। यह कैश कंट्रोल हेडर और अन्य कारकों पर निर्भर कर सकता है कि कैश किया जाता है और कितने समय के लिए। developer.mozilla.org/en-US/docs/Web/HTTP/Caching
निक

21

न केवल jQuery ही एकमात्र लोकप्रिय जेएस लाइब्रेरी नहीं है, एक ब्राउज़र को संभवतः कई संस्करणों को शामिल करना होगा। गूगल CDN वर्तमान में सूचीबद्ध करता है: jQuery के 42 संस्करणों; JQuery UI के 44 संस्करण; JQuery मोबाइल के 6 संस्करण।

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


14

ब्राउज़र इंजन है यह इंजन डिजाइनर का कर्तव्य नहीं है यह पता लगाने के लिए कि आप किस तरह के ईंधन और अतिरिक्त भागों को अपनी कार में डालेंगे और इसे आपके लिए शामिल करेंगे। यदि वे ऐसा करेंगे तो ब्राउज़र बहुत बड़ा ब्लॉटवेयर होगा क्योंकि अगला सवाल "सिर्फ jQuery क्यों होगा?", और हम निर्भरता रिपॉजिटरी को बनाए रखना चाहेंगे।

इसके अलावा, क्या हम सभी संस्करण शामिल करेंगे? क्या होगा अगर कोई कस्टम संस्करण का उपयोग करना चाहेगा? यदि कोई व्यक्ति उस पुस्तकालय का उपयोग नहीं करना चाहे तो क्या होगा? कितनी बार वे नवीनतम रिलीज़ को मर्ज और रोल करेंगे? क्या हम अलग-अलग संस्करणों के साथ अलग-अलग jQuery के साथ समाप्त करेंगे? वे समान रूप से मानकीकृत HTML, CSS और जावास्क्रिप्ट कार्यक्षमताओं को भी लागू नहीं कर सकते हैं। क्या होगा यदि ब्राउज़र अनुरक्षकों में से एक पुस्तकालय या उसके विशिष्ट संस्करण को शामिल करने के लिए नहीं जा रहा है?

ब्राउज़र आपको पहले से तैयार समाधान नहीं बनाने के लिए बिल्डिंग ब्लॉक्स और एक वातावरण प्रदान करते हैं।

ब्राउज़र में jQuery डालने से आपकी साइट का लोड तेज़ी से नहीं बढ़ रहा है क्योंकि आजकल यह सबसे बड़ी अड़चन नहीं है, हालाँकि हम इस बात से सहमत हो सकते हैं कि jQuery एक अनावश्यक रूप से बड़ी लाइब्रेरी है लेकिन इसका उद्देश्य कभी भी तेज़ लाइब्रेरी (विचार करना) नहीं था बैंडविड्थ)। कई अन्य पुस्तकालय हैं जो विशेष रूप से तेजी से लोड करने के लिए तैयार किए गए हैं और ज़ेप्टो की तरह हल्के हैं ।

यदि आप वास्तव में jQuery के आकार और बैंडविड्थ उपयोग के बारे में चिंतित हैं, तो इसका उपयोग न करें। क्या आपने कभी वैनिला JS के बारे में सुना है ? यह एक और भी अधिक लोकप्रिय पुस्तकालय है जिसका उपयोग शाब्दिक रूप से jQuery सहित लगभग हर व्यक्ति द्वारा किया जाता है! और यह आपके सपने को पहले ही पूरा कर चुका है क्योंकि यह हर ब्राउज़र में शामिल है!


2

JQuery जैसी लाइब्रेरी का उपयोग करने का एक कारण संगतता है।

ब्राउज़र अधिक मानक-अनुपालन हो गए हैं, लेकिन jquery लाइब्रेरी का उपयोग करके, आप अपने आप को आपूर्ति करते हैं, आपको ब्राउज़र परिवारों और संस्करणों के बीच अंतर के बारे में चिंता करने की ज़रूरत नहीं है

अपने आप को jquery की आपूर्ति करके, आप एक निश्चित एपीआई के लिए सुनिश्चित हैं।

यदि हमारे पास ब्राउज़र में निर्मित jquery है, तो आपको यह जांचना होगा कि उपयोगकर्ता के पास कौन सा संस्करण है, और हम ब्राउज़र्स में वापस आ रहे हैं और "यह साइट सबसे अच्छी तरह देखी जा रही है ..."

तो ब्राउज़र में jquery का निर्माण होने का कोई मतलब नहीं है।

इसके अलावा, कैशिंग काम करता है, इसलिए भले ही उपयोगकर्ता के पास आपका jquery संस्करण पहले से ही न हो, इसे केवल एक बार डाउनलोड करने की आवश्यकता है।


-3

मुझे वास्तव में लगता है कि यहाँ पर उत्तर देने वाले यह समझने में असफल हैं कि प्रश्न का उत्तर ब्राउज़रों को संभवतः ग्राहक पक्ष पर सबसे व्यापक रूप से उपयोग किए जाने वाले पुस्तकालयों, और पॉलीफिल्स आदि को शामिल करने के लिए देखना चाहिए।

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

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

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

सार में एक अतिरिक्त ब्राउजर में कोड ब्लोट के कुछ अतिरिक्त मेगाबाइट को जोड़ने के लिए - उसी डेटा को दिन में अरबों बार बेकार किया जा रहा है।

जो इंटरनेट पर हर किसी के लिए उपयोगकर्ता के अनुभव को खराब करता है। और प्रमुख व्यवसायों में बड़ी मात्रा में पैसा खर्च होता है।

एक डेवलपर के रूप में आप आवश्यक आवश्यक कमियां बनाएंगे जैसा कि हम वर्तमान में IE इत्यादि के लिए करते हैं, तो समस्या क्या है - यह संभवतः निश्चित रूप से शामिल किया जाना चाहिए?


1
यह प्रश्न के लिए स्पर्शरेखा है। सवाल यह है कि "ब्राउज़र क्यों नहीं, और मैं इसके बारे में क्या कर सकता हूं", "क्यों नहीं ब्राउज़र चाहिए।"
स्टीफन Ostermiller

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

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

स्टीफन। क्यूसिटॉन "क्यों ब्राउज़र नहीं है, और मैं इसके बारे में क्या कर सकता हूं"। वही तुम्हारा पुनरागमन है। सवाल यह है कि वे क्यों नहीं करते हैं, और यह पूछने वाले व्यक्ति स्पष्ट रूप से कहते हैं कि ऐसा करने से उन मुद्दों से निपटने के लिए एक नया ढांचा तैयार होता है जो वास्तव में सभी वेब उपयोगकर्ताओं के लिए एक बड़ा संभावित लाभ होगा।
एंडी बीबॉप

आप सभी को अपने उल्लिखित पूर्व धारणाओं का बचाव करने से रोकने की आवश्यकता है और आप सभी को अभी भी सीख सकते हैं। ओह, और वास्तव में कुछ पढ़ना भी सीखो। #हथियार, शस्त्र। "ओपी, आपकी बात को मानते हुए, सीडीएन पर यातायात को कम करने में रुचि रखता है"। नहीं, वे कहते हैं कि यह बैंडविड्थ की मात्रा ग्राहक पक्ष या CDN पर सहेज सकता है। पढने की मुद्रा पढें।
एंडी बीबॉप
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.