यह कुछ के लिए स्पष्ट हो सकता है, लेकिन मुझे आश्चर्य हो रहा है: मुझे अपनी साइट के लिए jQuery की मेजबानी करने के लिए Google के सर्वर पर निर्भर क्यों होना चाहिए ?
क्या यह केवल इसलिए है क्योंकि यह इस तरह से तेजी से लोड होता है?
यह कुछ के लिए स्पष्ट हो सकता है, लेकिन मुझे आश्चर्य हो रहा है: मुझे अपनी साइट के लिए jQuery की मेजबानी करने के लिए Google के सर्वर पर निर्भर क्यों होना चाहिए ?
क्या यह केवल इसलिए है क्योंकि यह इस तरह से तेजी से लोड होता है?
जवाबों:
यह है क्योंकि:
जब आप Google के CDN से jQuery का उपयोग नहीं करना चाहते हैं तो कई परिदृश्य हैं :
जब आप इंट्रानेट एप्लिकेशन का निर्माण कर रहे होते हैं, जहां वेब सर्वर क्लाइंट के समान नेटवर्क पर होस्ट किया जाता है। यदि आप Google के CDN jQuery का उपयोग करते हैं, तो आप स्थानीय नेटवर्क पर वेबसर्वर के बजाय इंटरनेट पर कॉल करेंगे। यह आपके संगठन के लिए बैंडविड्थ बढ़ाता है, और धीमा है।
जब आप अपना एप्लिकेशन ऑफलाइन चलाना चाहते हैं । (पहले मुद्दे से काफी जुड़ा हुआ है) यदि आपको एक विकास के माहौल पर काम करने की आवश्यकता है ( बोवर के साथ उदाहरण के लिए प्रबंधित ), तो आपको किसी भी इंटरनेट कनेक्शन के बिना अपना आवेदन कार्य करने में सक्षम होने की आवश्यकता हो सकती है (जैसे: ट्रेन में :)
जब आपको इसे कस्टमाइज़ करना हो । उदाहरण के लिए यदि आप लाइब्रेरी का निर्माण करने के लिए केवल कुछ मॉड्यूल का उपयोग करने या एएमडी नाम सेट करने के लिए ग्रंट का उपयोग करते हैं
जब आप SSL पर पृष्ठों की सेवा कर रहे हों, जिसके लिए jQuery की आवश्यकता हो। सुरक्षा समस्याओं और चेतावनियों से बचने के लिए आपको SSL पर SSL के साथ-साथ अपने पेज पर भी काम करना चाहिए।
इसके अलावा, Microsoft अपने CDN पर jQuery होस्ट करता है । यह Google के होस्ट किए गए jQuery का उपयोग करने के लिए तुलनीय एक और विकल्प है।
src="//ajax.googleapis.com/..."
, काम।
इस अध्ययन से टीजे VanToll ने मुझे आश्वस्त किया है कि यह अन्य के बजाय एक CDN से यह लोड स्क्रिप्ट के साथ jQuery श्रेणीबद्ध करने के लिए बेहतर है।
इसका कारण मोबाइल उपकरणों पर jQuery लाने में शामिल विलंबता है:
"2012 में संयुक्त राज्य अमेरिका में एक मोबाइल नेटवर्क पर आरटीटी का औसत 344ms था। और यह कि 344ms न केवल हर HTTP अनुरोध पर लागू होता है - जो कि अब औसत वेब पेज 93 बनाता है - लेकिन हर DNS लुकअप और टीसीपी कनेक्शन ... जबकि औसत आरटीटी में सुधार हो रहा है, केवल कुछ अतिरिक्त लाभ होने की संभावना है, क्योंकि वर्तमान नेटवर्क भौतिकी द्वारा निर्धारित सैद्धांतिक सीमा के एक छोटे कारक के भीतर हैं। "
वह स्टीव सौडर्स के इस पोस्ट का भी हवाला देते हैं, जिससे पता चलता है कि सीडीएन का उपयोग करने से आपको वास्तव में कैशिंग लाभ प्राप्त होने की संभावना नहीं है :
"CDN प्रदाताओं, jQuery संस्करणों और प्रोटोकॉल के उपयोग (http बनाम https) में विखंडन के कारण, CDN कैश हिट होने की संभावना बेहद कम है - और बाहरी डोमेन से डाउनलोड करने की क्षमता एक नहीं, बल्कि तीन प्रदर्शन करने की है। दौर यात्राएं (एक DNS लुकअप, एक टीसीपी कनेक्शन और एक HTTP जीईटी)। "
सबसे ज्यादा फायदा कैशिंग से होता है। सिद्धांत यह है कि यदि कोई विज़िटर किसी ऐसी साइट पर जाता है जो अपने जावास्क्रिप्ट पुस्तकालयों को लोड कर रहा है, तो Google सीडीएन से उदाहरण के लिए jQuery कहें, तो जब वे आपकी वेबसाइट पर जाते हैं, तो लाइब्रेरी पहले से ही उस उपयोगकर्ता के ब्राउज़र कैश में है और उसे फिर से डाउनलोड नहीं करना होगा। । यह सिद्धांत में बहुत अच्छा लगता है।
यहां और अन्य जगहों पर साझा किए जा रहे लाभ सभी सैद्धांतिक हैं। बस एक सीडीएन का उपयोग करने का गहराई से विश्लेषण किया गया था और यदि यह अपेक्षित प्रदर्शन लाभ प्रदान करता है। http://www.root777.com/appdev/does-using-google-libraries-api-cdn-give-you-performance-benefits
Google को आपके jQuery की मेजबानी नहीं करने का एक प्रमुख कारण, एक ऐसा जिसके बारे में बहुत से लोग नहीं सोचते हैं, वह यह है कि यदि आप चीन में हैं तो यह डाउनलोड नहीं होगा। यह कई अन्य स्क्रिप्ट, फोंट आदि के साथ अवरुद्ध है ... Google सीडीएन द्वारा होस्ट किया गया। यदि आपको चीनी दर्शकों तक पहुंचने की आवश्यकता है, तो आप हमेशा अपने सर्वर पर होस्ट किए गए फ़ॉल बैक का उपयोग कर सकते हैं। Google APIS चीन में अवरुद्ध है
यहाँ कुछ अच्छे जवाब "आपको क्यों चाहिए ..." और "आपको क्यों नहीं चाहिए ..."
यदि आप CDN से jQuery लोड करना चाहते हैं तो मैं बस Google में विकल्पों की एक सूची जोड़ना चाहता हूं।
लेकिन इसे योग करने के लिए, आप मूल रूप से अपनी समग्र वेबसाइट / एप्लिकेशन प्रदर्शन में सुधार कर रहे हैं।
सेवा कार्यकर्ता के साथ CDN का उपयोग करें, आप ग्राहक जीवनकाल में एक बार CDN डाउनलोड कर सकते हैं, और हर बार जब आप अपना कोड अपडेट नहीं करते हैं।