दोनों ¯ \ _ (ツ) _ / क्यों नहीं? स्कॉट हैनेलमैन ने प्रदर्शन लाभ के लिए सीडीएन का उपयोग करने पर एक शानदार लेख लिखा है, लेकिन सीडीएन नीचे होने की स्थिति में एक स्थानीय प्रतिलिपि पर इनायत से वापस गिर रहा है ।
बूटस्ट्रैप के लिए विशिष्ट, आप स्थानीय फॉलबैक के साथ CDN से लोड करने के लिए निम्न कार्य कर सकते हैं :
<head>
<!-- Bootstrap CSS CDN -->
<link rel="stylesheet" href="~https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css">
<!-- Bootstrap CSS local fallback -->
<script>
var test = document.createElement("div")
test.className = "hidden d-none"
document.head.appendChild(test)
var cssLoaded = window.getComputedStyle(test).display === "none"
document.head.removeChild(test)
if (!cssLoaded) {
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = "lib/bootstrap.min.css";
document.head.appendChild(link);
}
</script>
</head>
<body>
<!-- APP CONTENT -->
<!-- jQuery CDN -->
<script src="~https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
<!-- jQuery local fallback -->
<script>window.jQuery || document.write('<script src="lib/jquery.min.js"><\/script>')</script>
<!-- Bootstrap JS CDN -->
<script src="~https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
<!-- Bootstrap JS local fallback -->
<script>if(typeof($.fn.modal) === 'undefined') {document.write('<script src="lib/bootstrap.min.js"><\/script>')}</script>
</body>
अपडेट
सर्वोत्तम प्रथाएं
सर्वोत्तम प्रथाओं पर आपके प्रश्न के लिए, उत्पादन वातावरण में सीडीएन का उपयोग करने के लिए बहुत अच्छे कारण हैं :
- यह उपलब्ध समानता को बढ़ाता है।
- यह मौका बढ़ाता है कि कैश-हिट होगा ।
- यह सुनिश्चित करता है कि पेलोड जितना संभव हो उतना छोटा होगा ।
- यह आपके सर्वर द्वारा उपयोग किए जाने वाले बैंडविड्थ की मात्रा को कम करता है।
- यह सुनिश्चित करता है कि उपयोगकर्ता को भौगोलिक रूप से निकट प्रतिक्रिया मिलेगी ।
आपके संस्करण संबंधी चिंता के लिए, कोई भी CDN नमक में अपने वजन के बराबर है, जिससे आप लाइब्रेरी के एक विशिष्ट संस्करण को लक्षित कर सकते हैं ताकि आप गलती से प्रत्येक रिलीज़ के साथ ब्रेकिंग परिवर्तन न ला सकें।
का उपयोग करते हुए document.write
के अनुसार mdn पर document.write
नोट : जैसा document.write
कि दस्तावेज़ स्ट्रीम को लिखता है , document.write
एक बंद (लोड) दस्तावेज़ पर कॉल करने से स्वचालित रूप से कॉल होता है document.open
, जो दस्तावेज़ को साफ़ कर देगा ।
हालांकि, यहां उपयोग जानबूझकर किया गया है। DOM पूरी तरह से लोड होने से पहले और सही क्रम में कोड को निष्पादित करने की आवश्यकता है। यदि jQuery विफल हो जाता है, तो बूटस्ट्रैप को लोड करने का प्रयास करने से पहले हमें इसे दस्तावेज़ इनलाइन में इंजेक्ट करना होगा, जो jQuery पर निर्भर करता है।
HTML आउटपुट लोड के बाद :
इन दोनों उदाहरणों में, हालांकि, हम तब भी कॉल कर रहे हैं जब दस्तावेज़ अभी भी खुला है, इसलिए इसे संपूर्ण दस्तावेज़ को बदलने के बजाय सामग्री को इनलाइन करना चाहिए। यदि आप अंत तक प्रतीक्षा कर रहे हैं, तो आपको document.body.appendChild
गतिशील स्रोतों को सम्मिलित करने के लिए प्रतिस्थापित करना होगा।
एक तरफ : MVC 6 में, आप लिंक और स्क्रिप्ट टैग सहायकों के साथ ऐसा कर सकते हैं
rgb(51, 51, 51)
जोखिम भरा लगता है - क्या होगा अगर कोई रंग बदलता है और इसे अपडेट करना भूल जाता है? क्या अधिक स्थिर संपत्ति का उपयोग किया जा सकता है?