2012-01-03 7 views
8

मैं एचटीएमएल 5 बॉयलरप्लेट का उपयोग करें और jQuery इस तरह HTML पृष्ठ में दो बार घोषित किया जाता है:स्क्रिप्ट को दो अलग-अलग कॉल के साथ शामिल करने का क्या कारण है?

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 
<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script> 

जावास्क्रिप्ट इस तरह फ़ाइलों सहित के पीछे कारण क्या है?

ऐसा लगता है कि यह स्थानीय सर्वर से jQuery लाइब्रेरी लोड करना है यदि यह Google सीडीएन से पहुंच योग्य नहीं है।

+8

मुझे पूरा यकीन नहीं है कि आप क्या पूछ रहे हैं। आपने अपने प्रश्न में उत्तर दिया है ... – lonesomeday

+0

काम करता है यदि आपके पास '//' के बारे में स्पष्टीकरण के लिए इंटरनेट कनेक्शन –

उत्तर

8

वे कारण एचटीएमएल 5 बॉयलरप्लेट में स्क्रिप्ट शामिल है क्योंकि यह "स्थानीय सर्वर से jQuery लाइब्रेरी लोड करता है अगर यह Google सीडीएन से पहुंच योग्य नहीं है।" =)

2
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 

यह अगर गूगल होस्ट किया गया संस्करण भरी हुई नहीं था

<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script> 

यह jQuery पुस्तकालय का स्थानीय संस्करण लोड होगा jQuery पुस्तकालय के प्रोटोकॉल-कम संस्करण लोड करने का प्रयास करेंगे ठीक से (पहुंच योग्य नहीं, साइट नीचे है, आदि), इसलिए window.jQuery चेक करें। यदि window.jQuerytrue नहीं है तो यह document.write

1

हां, यह जांच रहा है कि jQuery लोड हो गया है या नहीं, अगर नहीं तो इसे अपने सर्वर से लोड कर रहा है।

// केवल इसे HTTP और HTTPS दोनों के साथ संगत बनाने के लिए उपयोग किया जाता है।

+0

+1 नहीं है, तो मुझे यह नहीं पता था! – enam

0

कारण विफलता है। कोड

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script> 

Google सीडीएन से jQuery लाइब्रेरी को खींचें जैसा आपने कहा था। फिर इस अगली पंक्ति:

<script>window.jQuery || document.write('<script src="js/libs/jquery-1.6.2.min.js"><\/script>')</script> 

की पुष्टि करेगा कि jQuery पुस्तकालय लोड किया गया था (गूगल CDN से), यदि नहीं, तो jQuery की स्थानीय प्रतिलिपि को पुनः प्राप्त।

2

Google सीडीएन से jQuery लोड हो रहा है इसे अपने स्थानीय सर्वर से लोड करने से बहुत तेज हो सकता है और इसे कैश किया जा सकता है ताकि उपयोगकर्ता को किसी अन्य वेबसाइट से इसकी कैश की गई प्रतिलिपि हो।

चेक यह सुनिश्चित करता है कि यह लोड हो गया है, अन्यथा अगर यह विफल हो गया है, तो इसे स्थानीय सर्वर से लोड करें।

0

यदि आपका प्रश्न "है क्यों स्थानांतरण प्रोटोकॉल निर्दिष्ट नहीं है?," तो उत्तर है "इसे निर्दिष्ट करने की आवश्यकता नहीं है।" यह आपको एक ही स्क्रिप्ट संदर्भ का उपयोग करने देता है चाहे कनेक्शन सुरक्षित सॉकेट का उपयोग कर रहा हो या नहीं, आपके उपयोगकर्ताओं को एन्क्रिप्टेड/अनएन्क्रिप्टेड सामग्री के बारे में चेतावनियां प्राप्त किए बिना।

तो सवाल था "इस लाइन ?: window.jQuery || document.write ('</script>') क्या है," तो जवाब है कि हम प्रयोग कर रहे हैं एक (कम या ज्यादा) jQuery ऑब्जेक्ट का परीक्षण करने के लिए टर्नरी स्टेटमेंट, जो jQuery लाइब्रेरी लोड नहीं होने पर "झूठी" मान का मूल्यांकन करेगा, और यदि ऐसा है, तो यह परीक्षण कथन के दूसरे भाग को ट्रिगर करेगा, जिसके परिणामस्वरूप स्थानीय jQuery लोड हो रहा है।

एचटीएच।

संबंधित मुद्दे

 संबंधित मुद्दे