आप jQuery लाइब्रेरी को कहाँ से शामिल करते हैं? Google JSAPI CDN?


242

JQuery और jQuery UI को शामिल करने के कुछ तरीके हैं और मैं सोच रहा हूं कि लोग क्या उपयोग कर रहे हैं?

  • Google JSAPI
  • jQuery की साइट
  • आपकी अपनी साइट / सर्वर
  • एक और सी.डी.एन.

मैं हाल ही में Google JSAPI का उपयोग कर रहा हूं, लेकिन यह पाया है कि SSL कनेक्शन सेटअप करने के लिए या केवल google.com को हल करने के लिए एक लंबा समय लगता है। मैं Google के लिए निम्नलिखित का उपयोग कर रहा हूं:

<script src="https://www.google.com/jsapi"></script>
<script>
google.load('jquery', '1.3.1');
</script>

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

तुम क्या इस्तेमाल करते हो? क्या आपके पास कोई मुद्दा है?

संपादित करें: बस jQuery की साइट पर गए और वे निम्नलिखित विधि का उपयोग करते हैं:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

Edit2: यहाँ बताया गया है कि पिछले साल के लिए मैंने jQuery को किस तरह से बिना किसी समस्या के शामिल किया है:

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

अंतर को हटाने का है http:। इसे हटाकर, आपको http और https के बीच स्विच करने की चिंता करने की आवश्यकता नहीं है।


8
डैरिल, शानदार संपादन। क्या मेरा सुझाव है कि आप अपने संपादन को पृष्ठ के शीर्ष पर ले जाएं और srcअब आपके द्वारा उपयोग किए जाने वाले सरल / सुरक्षित / तेज़ सिंटैक्स को बदल दें ? आपका उत्तर मूल रूप से विहित हो गया है और दोनों परिवर्तनों से लोगों को वह प्राप्त करने में मदद मिलेगी जो वे जल्दी से प्राप्त करते हैं।
जोश स्मिथ

जवाबों:


153

एक शक के बिना मैं गूगल एपीआई सर्वर द्वारा सेवा JQuery के लिए चुनते हैं। मैं jsapi पद्धति के साथ नहीं गया था क्योंकि मैं किसी अन्य Google API का लाभ नहीं उठाता, हालांकि अगर वह कभी बदल गया तो मैं इस पर विचार करूंगा ...

पहला: Google एपीआई सर्वरों को मेरे एकल सर्वर स्थान के बजाय दुनिया भर में वितरित किया जाता है: क्लोजर सर्वर का अर्थ आमतौर पर आगंतुक के लिए तेजी से प्रतिक्रिया समय होता है।

दूसरा: बहुत से लोग Google पर JQuery होस्ट करने का विकल्प चुनते हैं, इसलिए जब कोई विज़िटर मेरी साइट पर आता है तो उनके पास पहले से ही उनके स्थानीय कैश में JQuery स्क्रिप्ट हो सकती है। प्री-कैश्ड सामग्री का मतलब आमतौर पर आगंतुक के लिए तेजी से लोड समय होता है।

तीसरा: मेरी वेब होस्टिंग कंपनी मुझे इस्तेमाल किए गए बैंडविड्थ के लिए शुल्क देती है। अगर उपयोगकर्ता को कहीं और एक ही फाइल मिल सकती है, तो प्रति उपयोगकर्ता सत्र में 18k की खपत का कोई मतलब नहीं है।

मैं समझता हूं कि मैं सही स्क्रिप्ट फ़ाइल की सेवा के लिए Google पर विश्वास का एक हिस्सा रखता हूं, और ऑनलाइन और उपलब्ध होने के लिए। इस बिंदु तक मैं Google का उपयोग करने से निराश नहीं हुआ हूं और जब तक यह समझ में नहीं आता है तब तक इस कॉन्फ़िगरेशन को जारी रखेगा।

इंगित करने लायक एक बात ... यदि आपकी साइट पर आपके पास सुरक्षित और असुरक्षित पृष्ठों का मिश्रण है, तो आप सुरक्षित रूप से असुरक्षित सामग्री लोड करते समय आपके द्वारा देखी जाने वाली सामान्य चेतावनी से बचने के लिए Google स्रोत को गतिशील रूप से बदलना चाह सकते हैं:

यहाँ मैं क्या लेकर आया हूँ:

<script type="text/javascript">
    document.write([
        "\<script src='",
        ("https:" == document.location.protocol) ? "https://" : "http://",
        "ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>" 
    ].join(''));
</script>

UPDATE 9/8/2010 - HTTP और HTTPS को हटाकर कोड की जटिलता को कम करने के लिए कुछ सुझाव दिए गए हैं और बस निम्नलिखित सिंटैक्स का उपयोग करें:

<script type="text/javascript">
    document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js' type='text/javascript'>\<\/script>");
</script>

इसके अलावा आप jQuery की प्रमुख संख्या को दर्शाने के लिए url को बदल सकते हैं यदि आप यह सुनिश्चित करना चाहते हैं कि jQuery पुस्तकालयों का नवीनतम प्रमुख संस्करण लोड किया गया था:

<script type="text/javascript">
    document.write("\<script src='//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js' type='text/javascript'>\<\/script>");
</script>

अंत में, यदि आप Google का उपयोग नहीं करना चाहते हैं और jQuery पसंद करेंगे तो आप निम्नलिखित स्रोत पथ का उपयोग कर सकते हैं (ध्यान रखें कि jQuery SSL समर्थन नहीं करता है):

<script type="text/javascript">
    document.write("\<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'>\<\/script>");
</script>

26
मैं आपके सभी तीन कारणों से सहमत हूं, यही वजह है कि मैं अपने उत्पादन स्थलों पर Google से jquery शामिल करता हूं। एसएसएल पृष्ठों के लिए जेएस डायनेमिक इंजेक्शन के बजाय मैं केवल निर्दिष्ट प्रोटोकॉल के बिना एक स्क्रिप्ट टैग में यूआरएल का संदर्भ देता हूं। मेरे लिए ठीक काम करने लगता है। <script src = "// ajax.google ..."> </ script>
हारून वैगनर

1
दिलचस्प विचार ... लेकिन अगर आप JQuery के लोड को हाईजैक करने के लिए DNS पॉइज़निंग का उपयोग करने जा रहे हैं तो सिर्फ पूरी साइट के अनुरोध को ही क्यों हाईजैक करें? या Google Analytics स्क्रिप्ट के बारे में कैसे?
Dscoduc

9
चीजों को आसान बनाने के अलावा, मैं हर चीज से सहमत हूं, मैं इस प्रारूप का उपयोग करता हूं: <script src = "// ajax.google ..."> </ script>। तब मुझे http या https के बारे में चिंता करने की आवश्यकता नहीं है। उसके लिए थैक्स आरोन वैगनर।
डेरिल हेन

11
मैं नहीं देखता कि क्या document.write()इस्तेमाल किया जा रहा है? <script src="..."></script>हेडर में रखने के लिए एक साधारण ठीक है। → @ Dscoduc:, यह जल्दी नहीं होने वाला है, यह सिर्फ उस चेतावनी संदेश को लेने वाला है। यदि आपकी साइट सुरक्षित https का उपयोग कर रही है और आप एक गैर-एन्कोडेड सामग्री (जैसे http://googleapis) से खींच रहे हैं तो आपको वह चेतावनी संदेश मिल जाएगा। यदि आप केवल http का उपयोग कर रहे हैं https://googleapis, लेकिन आप इसके साथ लिंक कर रहे हैं , तो थोड़ी जल्दी क्या होगा , "सुरक्षित" एन्कोडिंग के साथ थोड़ा ओवरहेड है। इस प्रकार, लिंकिंग http://googleapisथोड़ा तेज़ होगा।
197 पर Vol7ron

5
यह भी ध्यान रखें कि Google इसके बाद उन वेबसाइटों को ट्रैक करने के लिए उपयोग करेगा जो उपयोगकर्ता जाते हैं। इसलिए यदि आप एक ऐसी वेबसाइट बना रहे हैं, जिसमें गोपनीयता के प्रति सचेत रहने की आवश्यकता है, तो कुछ फाइलों की मेजबानी करना गोपनीयता के लिए भुगतान करने की एक छोटी सी कीमत है।
हंस-क्रिस्टोफ़ स्टीनर

19

एक कारण जो आप किसी बाहरी सर्वर पर होस्ट करना चाहते हैं, वह है कि विशेष सर्वर से जुड़े कनेक्शन की ब्राउज़र सीमाओं के आसपास काम करना।

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

बाहरी सर्वर पर इसे होस्ट करने का दूसरा कारण आपके अपने सर्वर पर ट्रैफ़िक कम होना है।

हालाँकि, jQuery के आकार को देखते हुए, संभावना है कि यह आपके ट्रैफ़िक का एक छोटा हिस्सा होगा। आपको संभवतः अपनी वास्तविक सामग्री को अनुकूलित करने का प्रयास करना चाहिए।


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

14

jQuery के 1.3.1 मिनट का आकार केवल 18k है। मुझे नहीं लगता कि शुरुआती पेज लोड पर पूछने के लिए यह बहुत हिट है। उसके बाद इसे कैश किया जाएगा। परिणामस्वरूप, मैंने इसे स्वयं होस्ट किया।


7
मैं आपके बताए गए कारण के आधार पर सम्मानपूर्वक असहमत हूं। यदि आपको बहुत अधिक ट्रैफ़िक मिलता है, तो प्रति सत्र 18k तेज़ी से ट्रैफ़िक का एक बड़ा हिस्सा जोड़ सकता है। विशेष रूप से अगर आपके वेब द्वारा इस्तेमाल किए जाने वाले बैंडविड्थ की मेजबानी की जाती है ...
Dscoduc

1
मेरा विचार यह है कि यदि आपके आगंतुक केवल एक पृष्ठ को देखते हैं तो यह केवल एक चिंता का विषय है। यदि आपकी प्रोफ़ाइल कम आगंतुक और कई पृष्ठ-दृश्य हैं, तो प्रति आगंतुक पृष्ठ-विचारों में फैले होने पर न्यूनतम ओवरहेड। आगंतुकों को लौटाने के लिए डिट्टो।
क्रिस्टन

2
जब तक आपकी वेबसाइट बिल्कुल छोटी नहीं होगी, 18k हमेशा आपके ट्रैफ़िक का एक छोटा हिस्सा होगा।
हंस-क्रिस्टोफ़ स्टीनर

14

यदि आप Google का उपयोग करना चाहते हैं, तो सीधा लिंक अधिक प्रतिक्रियाशील हो सकता है। प्रत्येक लाइब्रेरी में डायरेक्ट फाइल के लिए सूचीबद्ध पथ है। यह jQuery पथ है

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>

बस अपने प्रश्न को फिर से पढ़ें, क्या कोई कारण है जो आपके https का उपयोग कर रहा है? यह उनके उदाहरण में Google टैग लिपि है

<script src="http://www.google.com/jsapi"></script>

3
HTTPS का उपयोग करना क्योंकि साइट HTTPS है, इसलिए थोड़े करना होगा।
डैरिल हेन

1
आपकी सभी सामग्री https आधारित है, या केवल इसमें से कुछ है?
Dscoduc

2
https साइटों पर http लिंक कष्टप्रद है क्योंकि IE (डिफ़ॉल्ट रूप से कम से कम) आपको कष्टप्रद के साथ कीड़े "इस साइट में सुरक्षित और असुरक्षित सामग्री का मिश्रण है।" पुष्टिकरण बॉक्स।
क्लेटस

1
जिस साइट से कोड आया है वह पूरी तरह से एसएसएल है - बेहद सुरक्षित संपर्क जानकारी।
डैरिल हेन

1
यदि आप अपने उपयोगकर्ताओं की सुरक्षा के बारे में परवाह करते हैं, तो हमेशा जावास्क्रिप्ट के लिए HTTPS का उपयोग करें। HTTPS के बिना, यह उन लोगों के बीच में (MITM) उन अनुरोधों की सेवा करने के लिए काफी आसान है जो जावास्क्रिप्ट के साथ-साथ आपके द्वारा लोगों को भेजने का इरादा रखते हैं। संभावित एमआईटीएम स्थानों के रूप में सार्वजनिक वाईफाई, हैक किए गए घरेलू राउटर आदि के बारे में सोचें। उन सभी pwn-to-own प्रतियोगिताओं को देखें: वे हमेशा ब्राउज़र का फायदा उठाते हैं।
हंस-क्रिस्टोफ़ स्टीनर

8

मैं ऐसी कोई सार्वजनिक साइट नहीं चाहूंगा जिसे मैंने किसी बाहरी साइट पर निर्भर करने के लिए विकसित किया हो, और इस प्रकार, मैं खुद को jQuery होस्ट करूंगा।

जब आप अन्य (Google, jquery.com, आदि) नीचे जाते हैं, तो क्या आप अपनी साइट पर आउटेज करने के लिए तैयार हैं? कम निर्भरता की कुंजी है।


2
मैंने उपयोगकर्ता अनुभव (तेज लोड बार) को कम निर्भरता के साथ वहाँ रखा।
Dscoduc

1
@ मेरी साइट नीचे है! वास्तव में jk, लेकिन मैंने नोटिस किया कि आप गूगल एनालिटिक्स का उपयोग कर रहे हैं और अंत के बजाय शुरुआत में उनकी स्क्रिप्ट है - जो कि आपकी साइट को आंशिक रूप से धीमा कर देगी अगर Google धीमा हो रहा है
Simon_Weaver

3
हम्म ... स्लेसी Google Analytics का उपयोग कर रहा है? क्या उसने यह नहीं कहा कि वह किसी भी सार्वजनिक साइट को नहीं चाहेगा जो उसने किसी बाहरी साइट पर निर्भर करने के लिए विकसित की हो? ;-)
Dscoduc

1
वाह, दोस्तों, वहाँ कुछ कठोर टिप्पणियां। :) हां, मैं अपने व्यक्तिगत ब्लॉग पर Analytics का उपयोग करता हूं, लेकिन यह उत्पादन साइट नहीं है जो राजस्व उत्पन्न करता है, इसलिए मुझे लगता है कि यह वास्तव में ठीक है। मुझे यकीन है कि मेरी साइट प्रति वर्ष कई दिनों के लिए डाउन है। याद रखें, आप व्यक्तिगत साइटों के लिए और काम के लिए जो करते हैं, वही नहीं है
5:17 पर 5:17

6
स्थानीय प्रति का उपयोग करने के अन्य अच्छे कारण हैं: ईरान, चीन, आदि जैसे कई देशों में Google अक्सर अवरुद्ध होता है, इसका मतलब है कि एक अरब से अधिक लोगों की पहुंच नहीं होगी।
हंस-क्रिस्टोफ़ स्टीनर

6

पेशेवरों: Google पर होस्ट के लाभ हैं

  • संभवतः अधिक तेज़ (उनके सर्वर अधिक अनुकूलित हैं)
  • वे कैशिंग को सही ढंग से संभालते हैं - 1 वर्ष (हम अपने सर्वर पर हेडर सही पाने के लिए बदलाव करने की अनुमति देने के लिए संघर्ष करते हैं)
  • जिन उपयोगकर्ताओं के पास पहले से ही किसी अन्य डोमेन पर Google द्वारा होस्ट किए गए संस्करण का लिंक है, उनके कैश में फ़ाइल पहले से मौजूद है

विपक्ष:

  • कुछ ब्राउज़र इसे XSS क्रॉस-डोमेन के रूप में देख सकते हैं और फ़ाइल को अस्वीकार कर सकते हैं।
  • विशेष रूप से उपयोगकर्ता फ़ायरफ़ॉक्स के लिए NoScript प्लगइन चला रहे हैं

मुझे आश्चर्य है कि क्या आप Google से INCLUDE कर सकते हैं, और फिर कुछ ग्लोबल वैरिएबल, या सोमेसुच की उपस्थिति की जांच कर सकते हैं, और यदि आपके सर्वर से अनुपस्थिति लोड हो रही है?


3
यह फ़ायरफ़ॉक्स की सहमति है, Google की नहीं।)
नैकिलोन

6

यहाँ कुछ मुद्दे हैं। सबसे पहले, आपके द्वारा निर्दिष्ट async लोड विधि:

<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  google.load('jquery', '1.3.1');
  google.setOnLoadCallback(function() {
    // do stuff
  });
</script>

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

दूसरा तरीका है:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js"></script>

कुछ सरल उदाहरणों को आज़माएं, एक साधारण तालिका है और कोशिकाओं की पृष्ठभूमि को setOnLoadCallback () विधि बनाम $ (दस्तावेज़) .ready () के साथ स्थैतिक jquery.min.js लोड के साथ पीले रंग में बदलें। दूसरी विधि में कोई ध्यान देने योग्य झिलमिलाहट नहीं होगी। पहली वसीयत। व्यक्तिगत रूप से मुझे लगता है कि यह एक अच्छा उपयोगकर्ता अनुभव नहीं है।

एक उदाहरण के रूप में इसे चलाएं:

<html>
<head>
  <title>Layout</title>
  <style type="text/css">
    .odd { background-color: yellow; }
  </style>
</head>
<body>
<table>
  <tr><th>One</th><th>Two</th></tr>
  <tr><td>Three</td><td>Four</td></tr>
  <tr><td>Five</td><td>Six</td></tr>
  <tr><td>Seven</td><td>Nine</td></tr>
  <tr><td>Nine</td><td>Ten</td></tr>
</table> 
<script src="http://www.google.com/jsapi"></script>
<script>
  google.load("jquery", "1.3.1");
  google.setOnLoadCallback(function() {
    $(function() {
      $("tr:odd").addClass("odd");
    });
  });
</script>
</body>
</html>

आप (को) टेबल को दिखाई देना और फिर पंक्तियों का पीला हो जाना।

Google.load () विधि के साथ दूसरी समस्या यह है कि यह केवल सीमित श्रेणी की फ़ाइलों को होस्ट करता है। यह बहुत ही प्लग-इन निर्भर होने के कारण jquery के लिए एक समस्या है। यदि आप कोशिश करते हैं और <script src="...">टैग के साथ एक jquery प्लगइन शामिल करते हैं और google.load()प्लग-इन शायद "jQuery के परिभाषित नहीं है" के संदेशों के साथ विफल हो जाएगा क्योंकि यह अभी तक लोड नहीं हुआ है। मैं वास्तव में इसके आसपास कोई रास्ता नहीं देखता।

तीसरी समस्या (किसी भी विधि के साथ) यह है कि वे एक बाहरी भार हैं। यह मानते हुए कि आपके पास कुछ प्लगइन्स हैं और आपका स्वयं का जावास्क्रिप्ट कोड है, आप अपने जावास्क्रिप्ट को लोड करने के लिए न्यूनतम दो बाहरी अनुरोधों पर निर्भर हैं। आप शायद बेहतर हो रहे हैं jquery, सभी प्रासंगिक प्लग-इन और अपने स्वयं के कोड और एक minified फ़ाइल में डाल रहे हैं।

से होस्टिंग के लिए चाहिए कि आप गूगल के उपयोग अजाक्स पुस्तकालय एपीआई? :

लोड समय के अनुसार, आप वास्तव में दो स्क्रिप्ट लोड कर रहे हैं - jsapi स्क्रिप्ट और म्यूटूल स्क्रिप्ट (ऊपर से संपीड़ित संस्करण)। ताकि एक के बजाय दो कनेक्शन हों। मेरे अनुभव में, मैंने पाया कि लोड करने का समय वास्तव में मेरे अपने व्यक्तिगत साझा सर्वर से लोड करने की तुलना में 2-3 गुना धीमा था, भले ही यह Google से आ रहा था, और संकुचित फ़ाइल का मेरा संस्करण Google की तुलना में K का एक युगल था। यह, फ़ाइल लोड होने के बाद भी और (संभवतः) कैश्ड। इसलिए मेरे लिए, चूंकि बैंडविड्थ ज्यादा मायने नहीं रखती, इसलिए कोई फर्क नहीं पड़ता।

अंत में आपके पास एक पेरानॉयड ब्राउज़र की संभावित समस्या है जो अनुरोध को किसी प्रकार के XSS प्रयास के रूप में चिह्नित करता है। यह आम तौर पर डिफ़ॉल्ट सेटिंग्स के साथ एक समस्या नहीं है, लेकिन कॉर्पोरेट नेटवर्क पर जहां उपयोगकर्ता का नियंत्रण नहीं हो सकता है कि वे किस ब्राउज़र का उपयोग करते हैं अकेले सुरक्षा सेटिंग्स जो आपको समस्या हो सकती है।

तो अंत में मैं वास्तव में मुझे jQuery के लिए Google AJAX API का उपयोग करके नहीं देख सकता (कम से कम "पूर्ण" API कुछ मायनों में एक अलग कहानी है) उदाहरणों को पोस्ट करने के अलावा।


मैंने आपके द्वारा बताए गए मुद्दों में से किसी का भी अनुभव नहीं किया है। बस सही क्रम में चीजों को लोड करने से जहां तक ​​मैं समझता हूं, बहुत कुछ हल हो जाएगा।
डैरिल हेन

4

अपने स्वयं के सर्वर पर इसे होस्ट करने की सलाह देने वाले लोगों के अलावा, मैंने इसे अलग-अलग डोमेन (जैसे static.website.com) पर रखने का प्रस्ताव दिया, ताकि ब्राउज़रों को इसे अन्य सामग्री थ्रेड से अलग करने की अनुमति मिल सके। यह टिप सभी स्थिर सामानों के लिए भी काम करता है, चित्र और सीएसएस कहते हैं।


4

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

नोट: यदि उन्होंने इस अभ्यास को बदल दिया है, तो सुपर। लेकिन पिछली बार जब मैंने उनके होस्ट किए गए पुस्तकालयों का उपयोग करने पर विचार किया, तो मैंने अपनी साइट पर आउटबाउंड http ट्रैफ़िक की निगरानी की, और Google सर्वरों को आवधिक कॉल कुछ ऐसी नहीं थीं जो मुझे देखने की उम्मीद थी।


लेकिन क्या आप पहले से ही अपनी साइट पर Google Analytics चला रहे हैं? चूंकि मुझे नहीं लगता कि मुझे इससे कोई फर्क पड़ता है कि क्या JQuery Google से आता है या नहीं, वे शायद पहले से ही जानते हैं कि मैं इसे अपनी साइट पर चला रहा हूं ...
Dscoduc

लेकिन 1 साल के लिए इसकी कैश्ड - क्या हम इस बीच Google को 304 "फ़ाइल परिवर्तित" भी भेज रहे हैं?
क्रिस्टन

हाँ, मैंने उन आवधिक कॉलों को वापस Google पर देखा है (सफारी के गतिविधि प्रबंधक की एक अच्छी सूची है)।
डैरिल हेन

Dscoduc - yep, Analytics का उपयोग करते हुए। उस कार्यान्वयन से कम से कम, मैं समय से पहले समझ गया था कि मैं उपयोग डेटा दे रहा हूं। जेएस के साथ ऐसा नहीं है।
15

3

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


3
"अच्छे शिष्टाचार" से आपका क्या अभिप्राय है? Google आपको उनके सर्वर से लिंक करने के लिए प्रोत्साहित करता है। यह Google के अविश्वसनीय बुनियादी ढांचे द्वारा पंप किया गया है।
नोसरेडना

2
जब आप Google का उपयोग करने के बारे में सुनते हैं, तो निश्चित रूप से एक भ्रम होता है। लेकिन जैसा कि nosredna ने कहा कि यह है के लिए प्रोत्साहित किया, "हम पुस्तकालयों होस्टिंग, सही ढंग से, कैश हेडर की स्थापना सबसे हाल ही में बग फिक्स के साथ तारीख तक रहने, आदि से बाहर दर्द ले" - code.google.com/apis/ajaxlibs
साइमन_वेवर

3

मैं इसे स्थानीय रूप से इन फ़ाइलों को होस्ट करने के लिए एक कारण के रूप में जोड़ दूंगा।

हाल ही में TWC पर दक्षिणी कैलिफ़ोर्निया में एक नोड ajax.googleapis.com डोमेन (IPv4 वाले उपयोगकर्ताओं के लिए) को हल करने में सक्षम नहीं है, इसलिए हमें बाहरी फाइलें नहीं मिल रही हैं। यह कल तक रुक-रुक कर होता रहा है (अब यह लगातार बना हुआ है।) क्योंकि यह रुक-रुक कर चल रहा था, इसलिए मुझे सास के उपयोगकर्ता समस्याओं का निवारण करने में बहुत समस्या हो रही थी। अनगिनत घंटे यह ट्रैक करने की कोशिश कर रहे थे कि क्यों कुछ उपयोगकर्ता सॉफ्टवेयर के साथ कोई समस्या नहीं कर रहे थे, और अन्य टैंक कर रहे थे। मेरी सामान्य डिबगिंग प्रक्रिया में, मैं एक उपयोगकर्ता से पूछने की आदत में नहीं हूं कि क्या उनके पास आईपीवी 6 बंद है।

मैं इस मुद्दे पर लड़खड़ा गया क्योंकि मैं खुद इस विशेष "मार्ग" फ़ाइल का उपयोग कर रहा था और केवल IPV4 का उपयोग कर रहा था। मैंने डेवलपर्स टूल के साथ इस मुद्दे की खोज की कि मुझे बता रहा है कि jquery लोड नहीं कर रहा था, फिर असली मुद्दे को खोजने के लिए ट्रेसरआउट्स आदि करना शुरू किया।

इसके बाद, मैं सबसे अधिक संभावना कभी भी बाह्य रूप से होस्ट की गई फ़ाइलों पर वापस नहीं जाऊंगा क्योंकि: Google को समस्या बनने के लिए इसके लिए नीचे नहीं जाना पड़ता है, और ... इनमें से किसी भी नोड को DNS अपहरण के साथ समझौता किया जा सकता है और दुर्भावनापूर्ण js वितरित कर सकता है। वास्तविक फ़ाइल के बजाय। हमेशा मुझे लगता है कि मैं सुरक्षित था कि एक Google डोमेन कभी नीचे नहीं जाएगा, अब मुझे पता है कि उपयोगकर्ता और होस्ट के बीच कोई भी नोड विफल हो सकता है।


2

मैं सिर्फ jQuery साइट से नवीनतम संस्करण शामिल करता हूं: http://code.jquery.com/jquery-latest.pack.js यह मेरी आवश्यकताओं के अनुरूप है और मुझे अद्यतन करने के बारे में चिंता करने की आवश्यकता नहीं है।

EDIT: एक प्रमुख वेब ऐप के लिए, निश्चित रूप से इसे नियंत्रित करें; इसे डाउनलोड करें और इसे स्वयं परोसें। लेकिन अपनी निजी साइट के लिए, मैं कम परवाह नहीं कर सकता था। चीजें जादुई रूप से गायब नहीं होती हैं, उन्हें आमतौर पर पहले हटा दिया जाता है। मैं यह जानने के लिए पर्याप्त हूं कि भविष्य के रिलीज के लिए क्या बदलना है।


1
मुझे पता चला कि यह तरीका थोड़े खतरनाक था, अगर लाइब्रेरी में कोड बदलने से आपकी साइट टूट जाती है तो क्या होगा? या jquery साइट नीचे जाती है? मैं बल्कि फ़ाइल पर पूरा नियंत्रण होगा।
जेसन Miesionczek

1
इसके अलावा, मुझे इस तरह से jQuery के लोगों के बैंडविड्थ को हिट करने से नफरत है। वे पहले से ही एक बहुत अच्छा मुफ्त उपकरण प्रदान करते हैं, और मैं बैंडविड्थ की लागत के कारण उन्हें नीचे जाने के लिए नफरत करता हूं। Google को अपने बाहरी स्रोत के रूप में उपयोग करने के लिए बेहतर है यदि आप इसे स्वयं होस्ट नहीं करना चाहते हैं, क्योंकि वे इसे उस उद्देश्य के लिए प्रदान कर रहे हैं।
nezroy

मैं JQuery के बजाय Google का उपयोग करने के लिए स्विच करने की सलाह दूंगा। मुख्य कारण यह है कि Google के पास JQuery की तुलना में दुनिया भर में कई अधिक सर्वर होने की संभावना है और मेरे अनुभव से अधिक लोग Google होस्टिंग का उपयोग करते हैं जो आपके मौके को बढ़ाता है क्योंकि उनके पास पहले से ही कैश है।
Dscoduc

मैं जेसन से सहमत हूं, स्वचालित रूप से एक नए संस्करण पर स्विच करना बहुत खतरनाक है। शायद उतना नहीं अगर आप केवल jquery का उपयोग करते हैं, लेकिन प्लगइन्स के साथ मैं निश्चित रूप से इसकी अनुशंसा नहीं करता हूं। मैं एक साइट पर एक प्लगइन का उपयोग करता हूं जो 1.2.6 के साथ काम करता है, लेकिन 1.3.x (अभी तक ...) नहीं
जीरोेन

2

यहां कुछ उपयोगी संसाधन, आशा है कि आप अपने सीडीएन को चुन सकते हैं। MS ने हाल ही में डिलीवरी के लिए एक नया डोमेन जोड़ा है लाइब्रेरीज़ ने अपने CDN को गर्त में डाला है।

पुराना प्रारूप: http://ajax.microsoft.com/ajax/jQuery/jquery-1.5.1.js नया प्रारूप: http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.js

यह microsoft.com के लिए सभी कुकी नहीं भेजनी चाहिए। http://www.asp.net/ajaxlibrary/cdn.ashx#Using_jQuery_from_the_CDN_11

यहाँ सभी प्रौद्योगिकी के बीच वेब पर उपयोग की जाने वाली सबसे लोकप्रिय तकनीक के बारे में कुछ आँकड़े हैं। http://trends.builtwith.com/

आशा है कि आप का चयन करने में मदद कर सकते हैं।


1

अगर मैं 'जी' साइट के लिए जिम्मेदार हूँ मैं बेहतर सब कुछ है कि पर और जा रहा है के बारे में पता होना में मेरी साइट। इस कारण से मैं jquery-min संस्करण को स्वयं या तो एक ही सर्वर या एक स्थिर / बाहरी सर्वर पर होस्ट करता हूं, लेकिन या तो एक स्थान जहां केवल मैं (या मेरा कार्यक्रम / प्रॉक्सी) सत्यापित करता हूं, हर परिवर्तन को सत्यापित / परीक्षण करने के बाद पुस्तकालय को अपडेट कर सकता है।


मुझे उम्मीद है कि Google फ़ाइल को कभी भी नहीं बदलेगा - बग-फिक्स के लिए वे फ़ाइल नाम में भिन्न संस्करण संख्या के साथ एक नई फ़ाइल की मेजबानी करेंगे। या मैं भोला हूँ? वे एक ही फ़ाइल नाम का उपयोग कर "मामूली सुधार" रोलआउट करेंगे ??
क्रिस्टन

यदि आप एक विशिष्ट संस्करण के लिए पूछते हैं तो Google को कभी भी फ़ाइल को नहीं बदलना चाहिए।
डैरिल हेन

1

सिर में:

  (function() {
    var jsapi = document.createElement('script'); jsapi.type = 'text/javascript'; jsapi.async = true;
    jsapi.src = ('https:' == document.location.protocol ? 'https://' : 'http://') + 'www.google.com/jsapi?key=YOUR KEY';
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('head')[0]).appendChild(jsapi);
  })();

शरीर का अंत:

<script type="text/javascript">
google.load("jquery", "version");
</script>

0

मैं इसे अपने सर्वर पर अन्य js फ़ाइलों के साथ होस्ट करता हूं, और, यह वह बिंदु है, उन्हें संयोजित करें और उन्हें छोटा करें (django-compresser के साथ, यहां, लेकिन वह बिंदु नहीं है) केवल एक js फ़ाइल के रूप में सेवा करने के लिए, सब कुछ साइट के साथ इसमें डाला जाना चाहिए। आपको वैसे भी अपनी स्वयं की js फ़ाइलों की सेवा करने की आवश्यकता होगी, इसलिए मुझे वहाँ अतिरिक्त jquery बाइट्स नहीं जोड़ने का कोई कारण नहीं दिखता है - कुछ और kbs हस्तांतरण करने के लिए बहुत अधिक सस्ता हैं, और अधिक अनुरोध किए जाने की तुलना में। आप किसी के आश्रित नहीं हैं, और जैसे ही आपके मिनिमाइज्ड js कैश हो जाते हैं, आप सुपर फास्ट भी हो जाते हैं।

पहले लोड पर, एक CDN आधारित समाधान जीत सकता है, क्योंकि आपको अपने स्वयं के सर्वर से अतिरिक्त jquery किलोबाइट को लोड करना होगा (लेकिन, एक अतिरिक्त अनुरोध के बिना)। मुझे संदेह है कि अंतर ध्यान देने योग्य है, हालांकि। और फिर, साफ़ किए गए कैश के साथ पहले लोड पर, CDN jquery लाने के लिए, अधिक अनुरोधों (और DNS लुकअप) की आवश्यकता के कारण, आपका स्वयं का होस्ट किया हुआ समाधान हमेशा बहुत तेज़ होगा।

मुझे आश्चर्य है कि इस बिंदु का लगभग कभी उल्लेख नहीं किया गया है, और सीडीएन दुनिया पर कैसे लगते हैं :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.