सीडीएन (Google) का उपयोग करके स्क्रिप्ट्स को शामिल करने या वेबसाइट की रूट में उन्हें स्थानीय रूप से संग्रहीत करने के लिए तेज़ क्या है?सीडीएन (Google) का उपयोग करके स्क्रिप्ट्स को शामिल करने के लिए तेज़ क्या है या वेबसाइट की रूट में उन्हें स्थानीय रूप से संग्रहीत करना?
उत्तर
इस पर निर्भर करता है कि आपका सर्वर कितना तेज़ है। हालांकि सीडीएन शायद तेज़ है, आपके ग्राहक के पास पहले से ही किसी अन्य वेबसाइट से कैश की गई फ़ाइल हो सकती है।
यह आपकी साइट से बहुत सारी बैंडविड्थ ऑफ़लोड करेगा, हालांकि आप फ़ाइल को बनाए रखने के लिए किसी तृतीय पक्ष की स्थिरता पर भरोसा करते हैं।
एक गूगल CDN :-)
1) देखने का कैश बिंदु से अनुकूलित
2) उपयोगकर्ता अधिक इष्टतम CDN नोड से संसाधन प्राप्त करता है (हालांकि मैं गूगल होने मुद्दों किसी भी समय जल्दी ही नहीं दिख रहा है)
यदि आप इंटरनेट jQuery साइट के लिए कोर jQuery लाइब्रेरीज़, use the google CDN का मतलब है (एक आंतरिक के विपरीत)।
- अधिक सर्वर
- बैंडविड्थ (आप के लिए भुगतान नहीं करते हैं)
- जियोलोकेशन (कम प्रतिक्रिया समय) :
- अतिरिक्तता
- अनुकूलित कैशिंग सेटिंग्स
- संभावना उपयोगकर्ता पहले से ही है वहाँ
- parallelized डाउनलोड से फ़ाइल कैश की गई, उपयोगकर्ता एक ही समय
CDN निम्न लाभ आप के साथ प्रतिस्पर्धा करने के लिए कठिन मिल जाएगा है
पर अपनी साइट से अन्य सामग्री प्राप्त कर सकते हैं हालांकि आप कैश हेडर कॉन्फ़िगर कर सकते हैं, जैसे वे करते हैं, तो आप शायद काम नहीं कर सकते फ़ाइल तेज है। कहा जा रहा है, पुस्तकालय/सीडीएन पहेली का केवल एक हिस्सा है। आपके पास विविध प्लगइन्स और कोड भी minified, combined और served via gzip होना चाहिए।
मैं दूसरों के कारणों के कारण Google की सीडीएन कहूंगा।
हालांकि, यदि आपका लक्षित बाजार आपके सर्वर के नजदीकी है, तो यह आपके सर्वर से सर्वर को सर्वर करना बेहतर हो सकता है।
कहें, उदाहरण के लिए, आपके पास ऑरलैंडोफ्लोरिडाPeopleOnly.com/ के लिए एक साइट है। यदि आपका सर्वर ऑरलैंडो, फ्लोरिडा में होस्ट किया गया है और Google के सबसे नज़दीकी सामग्री वितरण सर्वर मियामी, फ्लोरिडा और अटलांटा, जॉर्जिया (जो सच है) में हैं, तो आपका सर्वर संभवतया तेज़ हो सकता है यदि आगंतुक के पास पहले से कैश की गई प्रतिलिपि नहीं है Google सीडीएन से फाइल का।
याद रखें, अगर आप अपने आगंतुकों को स्थिर सामग्री प्रदान करते हैं तो आपका सर्वर उप-डोमेन या अन्य माध्यमों का उपयोग करके डाउनलोड को समानांतर करने का प्रयास करता है। और भलाई के लिए ... स्थिर सामग्री के लिए कुकीज़ स्थानांतरित नहीं करते हैं।
मुझे यकीन नहीं है कि यह स्रोत कितना विश्वसनीय है: Google data centers। तो जरूरी नहीं कि इस पर भरोसा करें।
यह ध्यान देने योग्य हो सकता है कि विजुअल स्टूडियो में Google के सीडीएन के लिए इंटेलिजेंस के साथ समस्याएं हैं।माइक्रोसॉफ्ट में एक सीडीएन भी है जो इंटेलिसेंस को सही तरीके से काम करने की अनुमति देता है। लेकिन हाँ, एक सीडीएन का उपयोग करें।
दुर्भाग्यवश अध्ययनों ने हाल ही में दिखाया है कि गुगल सीडीएन वास्तव में प्रदर्शन में बाधा डालता है।
Google के AJAX लाइब्रेरी एपीआई ने साझा साझा कैश प्रदान करके सभी भाग लेने वाली वेबसाइटों के प्रदर्शन को बेहतर बनाने के लिए नेटवर्क प्रभावों का उपयोग करने का प्रयास किया। हालांकि हाल के शोध में पता चला है कि बहुत कम लोग इसके लिए नेटवर्क का उपयोग महत्वपूर्ण द्रव्यमान को मारने और वास्तव में वेब प्रदर्शन में सुधार करने के लिए करते हैं। वर्तमान में नेटवर्क का उपयोग करने में ओवरहेड का मतलब है कि Google के AJAX लाइब्रेरी एपीआई का उपयोग वास्तव में प्रदर्शन को कम करता है। आपको जावास्क्रिप्ट फ़ाइल को स्थानीय रूप से होस्ट करना चाहिए। यह आपके बैंडविड्थ खपत को बढ़ाएगा लेकिन पेज लोड की गति में सुधार करेगा। Zoompf.com प्रदर्शन रिपोर्ट नोट से।
यहाँ देखें भी Should You Use JavaScript Library CDNs?
क्या मुझे कुछ प्रतिक्रिया मिल सकती है कि यह नकारात्मक क्यों है? – Duncan
यह सही नहीं लगता है। Google के सीडीएन सर्वर उपयोगकर्ता की तुलना में बहुत तेज़ और करीब हैं जो आप स्वयं होस्ट कर सकते हैं। यहां दूसरी बात है - ब्राउज़र आपके स्वयं के सर्वर से जेएस के साथ * समांतर * में एक सीडीएन से jQuery डाउनलोड करेगा। दोनों अनुरोध समानांतर में डाउनलोड होंगे, लेकिन फिर भी अनुक्रमिक रूप से निष्पादित किए जाएंगे। इसलिए मुझे नहीं पता कि यह कभी भी अपने सर्वर पर jQuery को होस्ट करने से धीमा क्यों होगा, या इससे भी बदतर, इसे एक विशाल जेएस फ़ाइल में संकलित करना होगा। और यह सबसे बुरी स्थिति के लिए है, जहां उपयोगकर्ता के पास कुछ भी कैश नहीं होता है। – ndbroadbent
इसकी उन्हें localStorage/वेब भंडारण में स्टोर करने के लिए भी तेजी से है। मैं एक छोटे से पुस्तकालय बनाया है कि ऐसा करने के लिए और परिणाम CDN से काफी समझाने
- लोड हो रहा है jQuery हैं: क्रोम 268ms, फ़ायर्फ़ॉक्स: क्रोम 47ms, फ़ायर्फ़ॉक्स: localStorage से 200 मि.से
- लोड हो रहा है jQuery 14ms
आप https://github.com/webpgr/cached-webpgr.js पर यह छोटे है कोड की जाँच करें और आप पढ़ सकते हैं और एक तख्तापलट के भीतर के सभी समझ सकते हैं मिनटों का ली
यहां एक पूर्ण उदाहरण है जिसका उपयोग कैसे किया जाए।
पूरा पुस्तकालय:
function _cacheScript(c,d,e){var a=new XMLHttpRequest;a.onreadystatechange=function(){4==a.readyState&&(200==a.status?localStorage.setItem(c,JSON.stringify({content:a.responseText,version:d})):console.warn("error loading "+e))};a.open("GET",e,!0);a.send()}function _loadScript(c,d,e,a){var b=document.createElement("script");b.readyState?b.onreadystatechange=function(){if("loaded"==b.readyState||"complete"==b.readyState)b.onreadystatechange=null,_cacheScript(d,e,c),a&&a()}:b.onload=function(){_cacheScript(d,e,c);a&&a()};b.setAttribute("src",c);document.getElementsByTagName("head")[0].appendChild(b)}function _injectScript(c,d,e,a){var b=document.createElement("script");b.type="text/javascript";c=JSON.parse(c);var f=document.createTextNode(c.content);b.appendChild(f);document.getElementsByTagName("head")[0].appendChild(b);c.version!=e&&localStorage.removeItem(d);a&&a()}function requireScript(c,d,e,a){var b=localStorage.getItem(c);null==b?_loadScript(e,c,d,a):_injectScript(b,c,d,a)};
पुस्तकालय कॉलिंग
requireScript('jquery', '1.11.2', 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js', function(){
requireScript('examplejs', '0.0.3', 'example.js');
});
मुझे नहीं पता कि आप ऐसा क्यों करेंगे, इससे ज्यादा समझ नहीं आती है। सीडीएन से एक स्क्रिप्ट लोड करना मतलब है कि यह ब्राउज़र द्वारा स्वचालित रूप से कैश किया जाता है, इसलिए आप स्थानीय स्टोरेज के साथ ही वही कर रहे हैं। क्यों न केवल ब्राउज़र कैश का उपयोग करें, जो पहले से ही तत्काल है? – ndbroadbent
https://addyosmani.com/basket.js/ पर "क्यों स्थानीय स्टोरेज" एक दिलचस्प पढ़ा है। मुझे लगता है कि यह समझ में आ सकता है क्योंकि आप किसी सर्वर से "304 संशोधित नहीं" प्रतिक्रिया छोड़ सकते हैं। – ndbroadbent
मैं इस बात की सराहना करता हूं कि इस प्रतिक्रिया में दावे का समर्थन करने के लिए समय लोड हो रहा है, और मैं देखना चाहता हूं कि किसी के पास विरोधी प्रेरणा की संख्या है या नहीं। कोई कैसे अस्वीकार करेगा कि ये संख्या वास्तविक सहसंबंध का संकेतक हैं? हम उन संख्याओं को अप्रासंगिक या स्वतंत्र गति से स्वतंत्र क्यों करेंगे जो हम बहस कर रहे हैं? – mrmaclean89
- 1. क्या Google स्प्रेडशीट्स स्क्रिप्ट्स को स्वचालित करना संभव है (उदा। उन्हें ट्रिगर करने के लिए किसी ईवेंट के बिना)?
- 2. स्क्रिप्ट/स्टाइलशीट्स: स्थानीय रूप से समेकित या सीडीएन का उपयोग करें?
- 3. Google के सीडीएन
- 4. मूल्यों को संग्रहीत करने के लिए चर का उपयोग करना या वस्तुओं से मूल्य प्राप्त करना?
- 5. उपयोगकर्ता छवि अपलोड को स्टोर/सेवा करने के लिए सीडीएन का उपयोग करना?
- 6. वेबसाइट विकास को प्रबंधित करने के लिए गिट का उपयोग करने के लिए सलाह?
- 7. क्या जावास्क्रिप्ट पुस्तकालयों को लोड करने के लिए सार्वजनिक सीडीएन का उपयोग न करने का कोई फायदा है?
- 8. एएसपीनेट पृष्ठ में स्क्रिप्ट्स को शामिल करने का उचित तरीका
- 9. क्या जैस्मीन के स्रोत के रूप में बाहरी जावास्क्रिप्ट को शामिल करने का कोई तरीका है?
- 10. क्या Google ऐप इंजन स्थिर संसाधनों को वितरित करने के लिए Google सीडीएन का उपयोग करता है?
- 11. फ़ंक्शन के अंदर 'मूल्य से पारित तर्क' को संशोधित करना और उन्हें स्थानीय चर के रूप में उपयोग करना
- 12. क्या यह हमेशा एक स्ट्रिंग के रूप में स्ट्रिंग का उपयोग करने के लिए तेज़ है?
- 13. Android ऐप के लिए स्थानीय रूप से या ऑनलाइन बड़े डेटा संग्रहीत करना?
- 14. डाटाबेस बनाम वेबसाइट फ़ाइलों को संग्रहीत करने के लिए ईबीएस
- 15. रूट निर्देशिका के रूप में उप निर्देशिका को सेट करने के लिए .htaccess का उपयोग
- 16. WPF अनुप्रयोग में स्थानीय रूप से डेटा फ़ाइलों को संग्रहीत करने के लिए फ़ोल्डर
- 17. क्या किसी दुर्भावनापूर्ण वेबसाइट के लिए मेरी वेबसाइट को दूसरी वेबसाइट से चोरी करना संभव है?
- 18. डेटा को सुरक्षित रूप से संग्रहीत करना
- 19. वेबसाइट में मेनू शामिल करने के लिए अच्छी प्रथाएं?
- 20. क्या Google Analytics के लिए कोई तेज़ विकल्प है?
- 21. जावा: प्रतिबिंब का उपयोग करके खेतों को इंजेक्ट करने का सबसे तेज़ तरीका क्या है?
- 22. Django में फोन नंबर संग्रहीत करते समय, क्या मुझे उन्हें कच्चे अंकों के रूप में स्टोर करना चाहिए या django.contrib.localflavor का उपयोग करना चाहिए?
- 23. क्या मुझे स्लीप() का उपयोग करना चाहिए या बस उन्हें
- 24. क्या मुझे इस वेबसाइट एप्लिकेशन के लिए रेल या रूबी का उपयोग करना चाहिए? कैसे?
- 25. "शामिल" टैग का उपयोग करके Django में गतिशील रूप से टेम्पलेट्स को कैसे शामिल करें
- 26. क्या LINQPad में LINQ का उपयोग करके संग्रहीत प्रक्रिया को कॉल करना संभव है?
- 27. क्या माइक्रोसॉफ्ट एज़ूर सीडीएन एक असली सीडीएन या कुछ और पूरी तरह से है?
- 28. क्या वर्चर (अधिकतम) को संग्रहीत प्रक्रिया तर्क के रूप में उपयोग करना अच्छा विचार है?
- 29. वेब रूट के बाहर स्क्रिप्ट फाइलों को संग्रहीत करना
- 30. पायथन का उपयोग कर Google ऐप इंजन के लिए सीआरयूडी वेबपृष्ठ उत्पन्न करने का सबसे तेज़ तरीका क्या है?
अच्छा मुद्दा यह है कि का उपयोग पहले से ही से पहले :) –
बहुत बढ़िया जवाब निक फ़ाइल, कि एक के बारे में सोचा नहीं कैश की गई हो, लेकिन क्या होगा अगर सीडीएन-सेवारत पुस्तकालयों को अद्यतन किया जाता है और अचानक यह लेआउट या इसी तरह टूट जाता है? क्या वह सुरक्षा उल्लंघन नहीं है? – dzhi
@purpler - आपके पास वहां नियंत्रण है, उदाहरण के लिए आप एक विशिष्ट संस्करण का संदर्भ दे सकते हैं जो बदलेगा नहीं, उदाहरण के लिए 'http: // ajax.googleapis.com/AJAX/libs/jquery/1.4.2/jquery.js', या नवीनतम बिंदु/मामूली संस्करण: 'http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js', या नवीनतम प्रमुख संस्करण: 'http: // ajax.googleapis.com/AJAX/libs/jquery/1/jquery.js' (सुनिश्चित करें कि 'jquery.min.js' का उपयोग करना सुनिश्चित करें) उत्पादन!) –